V tomto prohlášení nepřidáváte omezení, ale přidáváte omezenís :každá ze dvou klauzulí FOREIGN KEY znamená samostatné omezení. Přesto podle příručky
, měli byste být schopni přidat tolik omezení cizího klíče do jednoho příkazu ALTER TABLE, kolik je potřeba. Stačí zahrnout ADD
před každým omezením.
Všimněte si, že názvy omezení platí jednotlivě pro omezení, která přidáváte, takže možná budete chtít zadat CONSTRAINT name
pro druhý cizí klíč, pokud chcete, aby měl konkrétní název. Totéž s ON UPDATE/ON DELETE
:platí pro cizí klíč, který je přímo předchází.
Opravený příkaz tedy může vypadat takto:
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;