Ответ 1
Вы не добавляете ограничение в этот оператор, вы добавляете constraint s: каждый из двух условий FOREIGN KEY означает отдельное ограничение. Тем не менее, в соответствии с руководством , вы должны иметь возможность добавить столько ограничений внешнего ключа в один оператор ALTER TABLE, сколько необходимо. Вам просто нужно включить ADD
перед каждым ограничением.
Обратите внимание, что имена ограничений применяются индивидуально к ограничениям, которые вы добавляете, и поэтому вы можете указать CONSTRAINT name
для второго внешнего ключа, если хотите, чтобы у него было определенное имя. То же самое с ON UPDATE/ON DELETE
: они применяются к внешнему ключу, который непосредственно предшествует им.
Итак, исправленный оператор может выглядеть так:
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;