Non stai aggiungendo un vincolo in questa istruzione, stai aggiungendo vincolos :ciascuna delle due clausole FOREIGN KEY significa un vincolo separato. Tuttavia, secondo il manuale
, dovresti essere in grado di aggiungere tutti i vincoli di chiave esterna in una singola istruzione ALTER TABLE quanto necessario. Devi solo includere ADD
prima di ogni costrizione.
Nota che i nomi dei vincoli si applicano individualmente ai vincoli che stai aggiungendo, quindi potresti voler specificare CONSTRAINT name
per la seconda chiave esterna se vuoi che abbia un nome specifico. Lo stesso con ON UPDATE/ON DELETE
:si applicano alla chiave esterna che li precede direttamente.
Quindi, l'affermazione corretta potrebbe assomigliare a questa:
ALTER TABLE users_role_map
ADD CONSTRAINT FK_users_role_map1
FOREIGN KEY (email) REFERENCES usert(email)
ON UPDATE CASCADE
ON DELETE CASCADE,
ADD CONSTRAINT FK_users_role_map2
FOREIGN KEY (id) REFERENCES rolet(id)
ON UPDATE CASCADE
ON DELETE CASCADE;