Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Alterar tabela para fornecer restrição de chave estrangeira


Você não está adicionando uma restrição nesta declaração, você está adicionando restriçãos :cada uma das duas cláusulas FOREIGN KEY significa uma restrição separada. Ainda assim, de acordo com o manual , você poderá adicionar quantas restrições de chave estrangeira em uma única instrução ALTER TABLE forem necessárias. Você só precisa incluir ADD antes de cada constrangimento.

Observe que os nomes das restrições se aplicam individualmente às restrições que você está adicionando e, portanto, convém especificar CONSTRAINT name para a segunda chave estrangeira se você quiser que ela tenha um nome específico. O mesmo com ON UPDATE/ON DELETE :eles se aplicam à chave estrangeira que os precede diretamente.

Então, a declaração corrigida pode ficar assim:
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;