반응형
두 개의 다른 테이블에서 복사 한 두 개의 열이있는 테이블이 있는데, 지금하고 싶은 것은 아래 표시된 열 이름 이메일과 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
반응형
'MySql' 카테고리의 다른 글
MySQL shuffle random MYSQL results (0) | 2020.09.19 |
---|---|
MySQL 두 테이블에서 선택하는 MySQL (0) | 2020.09.19 |
MySQL 오류-SQLSTATE [42000] : 구문 오류 또는 액세스 위반 : 1064 (0) | 2020.09.19 |
MySQL PHP-SELECT WHERE id = array ()? (0) | 2020.09.19 |
MySQL 사용자 정보와 사용자 로그인 및 암호를 가장 잘 저장하는 방법 (0) | 2020.09.19 |
댓글