sql >> Base de Datos >  >> RDS >> Mysql

Alterar tabla para dar restricción de clave externa

No está agregando una restricción en esta declaración, está agregando restriccións :cada una de las dos cláusulas FOREIGN KEY significa una restricción separada. Aún así, según el manual , debería poder agregar tantas restricciones de clave externa en una sola instrucción ALTER TABLE como sea necesario. Solo necesita incluir ADD ante cada restricción.

Tenga en cuenta que los nombres de las restricciones se aplican individualmente a las restricciones que está agregando, por lo que es posible que desee especificar CONSTRAINT name para la segunda clave externa si desea que tenga un nombre específico. Lo mismo con ON UPDATE/ON DELETE :se aplican a la clave externa que les precede directamente.

Entonces, la declaración corregida podría verse así:

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;