테이블을 생성하려는데 자꾸 외래키를 추가할 수 없다며 에러가 났다.
아무리봐도 원인을 몰랐었는데,
캐릭터셋이 달라서 오류가 났던 것이었다...
부모 테이블은 CHARSET=utf8 였는데 참조하는 테이블은 CHARSET=utf8mb4로 캐릭터셋이 달랐다.
참조하려는 컬럼의 데이터형도 같아야 하지만, 캐릭터 셋도 같아야한다는 것!!!
Cannot add foreign key constraint 오류가 난다면 다음을 체크해야겠다.
1. 부모 테이블의 참조하려는 컬럼이 유니크키거나 (primary) key인지 확인
2. 컬럼의 데이터형과 길이는 같은지 확인
3. 컬럼의 캐릭터셋이 같은지 확인
그래도 원인을 모르겠다면
SHOW ENGINE INNODB STATUS; 을 실행하면
(짧지만) 오류 로그를 확인해 볼 수 있다.
'SQL' 카테고리의 다른 글
MySql 설치 (0) | 2021.02.25 |
---|---|
MySQL 컬럼 추가 / 삭제 (0) | 2020.12.22 |
댓글