본문 바로가기
MySql

MySQL 외래 키 제약 조건을 제공하도록 테이블 변경

by 베이스 공부 2020. 9. 19.
반응형

두 개의 다른 테이블에서 복사 한 두 개의 열이있는 테이블이 있는데, 지금하고 싶은 것은 아래 표시된 열 이름 이메일과 ID 모두에 외래 키 제약 조건을 부여하는 것입니다.

ALTER TABLE users_role_map
ADD CONSTRAINT FK_users_role_map
FOREIGN KEY (email) REFERENCES usert(email),
FOREIGN KEY (id) REFERENCES rolet(id)
ON UPDATE CASCADE
ON DELETE CASCADE;

다음과 같은 오류가 발생합니다.

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'FOREI
GN KEY (id) REFERENCES rolet(id)
ON UPDATE CASCADE
ON DELETE CASCADE' at line 4

 

해결 방법

 


제약 조건 이름은 추가하는 제약 조건에 개별적으로 적용되므로 특정 이름을 가지려면 두 번째 외래 키에 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;

 

참조 페이지 https://stackoverflow.com/questions/9471348

 

 

반응형

댓글