Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Tabelle ändern, um Fremdschlüsseleinschränkung zu geben

Sie fügen in dieser Anweisung keine Einschränkung hinzu, Sie fügen Einschränkungens hinzu :Jede der beiden FOREIGN KEY-Klauseln bedeutet eine separate Einschränkung. Laut dem Handbuch , sollten Sie so viele Fremdschlüsseleinschränkungen wie nötig in einer einzelnen ALTER TABLE-Anweisung hinzufügen können. Sie müssen nur ADD einfügen vor jeder Einschränkung.

Beachten Sie, dass Beschränkungsnamen individuell auf die Beschränkungen angewendet werden, die Sie hinzufügen, und deshalb möchten Sie vielleicht CONSTRAINT name für den zweiten Fremdschlüssel, wenn Sie möchten, dass er einen bestimmten Namen hat. Dasselbe gilt für ON UPDATE/ON DELETE :Sie gelten für den Fremdschlüssel, der ihnen direkt vorausgeht.

Die korrigierte Anweisung könnte also so aussehen:

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;