Nie dodajesz ograniczenia w tej instrukcji, dodajesz ograniczenies :każda z dwóch klauzul FOREIGN KEY oznacza osobne ograniczenie. Jednak zgodnie z podręcznikiem
, powinieneś być w stanie dodać tyle ograniczeń kluczy obcych w pojedynczej instrukcji ALTER TABLE, ile jest to konieczne. Wystarczy dołączyć ADD
przed każdym ograniczeniem.
Zwróć uwagę, że nazwy ograniczeń dotyczą indywidualnie dodawanych ograniczeń, więc możesz chcieć określić CONSTRAINT name
dla drugiego klucza obcego, jeśli chcesz, aby miał określoną nazwę. To samo z ON UPDATE/ON DELETE
:dotyczą klucza obcego, który je bezpośrednio poprzedza.
Skorygowane stwierdzenie może więc wyglądać tak:
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;