Vous n'ajoutez pas de contrainte dans cette instruction, vous ajoutez des contraintess :chacune des deux clauses FOREIGN KEY signifie une contrainte distincte. Pourtant, selon le manuel
, vous devriez pouvoir ajouter autant de contraintes de clé étrangère dans une seule instruction ALTER TABLE que nécessaire. Il vous suffit d'inclure ADD
avant chaque contrainte.
Notez que les noms de contraintes s'appliquent individuellement aux contraintes que vous ajoutez, et vous pouvez donc spécifier CONSTRAINT name
pour la deuxième clé étrangère si vous voulez qu'elle ait un nom spécifique. Idem avec ON UPDATE/ON DELETE
:elles s'appliquent à la clé étrangère qui les précède directement.
Ainsi, la déclaration corrigée pourrait ressembler à ceci :
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;