1215: Cannot add foreign key constraint
MySQL의미
정의하려는 외래 키 제약 조건을 생성할 수 없다. MySQL이 제약 조건을 추가하지 못한다.
원인
자식 컬럼과 참조 컬럼 간의 데이터 타입/길이/부호(signed-unsigned) 또는 character set/collation 불일치, 참조 컬럼에 적절한 인덱스/PRIMARY KEY 없음, 서로 다른 스토리지 엔진을 사용하는 테이블(한쪽이 MyISAM), 또는 참조 테이블이 아직 존재하지 않음.
해결 방법
양쪽 컬럼 타입이 정확히 같은지 확인한다(예: 둘 다 INT UNSIGNED). 참조 컬럼에 인덱스가 있는지 확인한다(보통 PRIMARY KEY 또는 UNIQUE). 두 테이블 모두 InnoDB인지 확인한다. 문자열 키에는 같은 charset/collation을 사용한다. 상세 정보: SHOW ENGINE INNODB STATUS(LATEST FOREIGN KEY ERROR).
같은 데이터베이스의 다른 항목
- 2003Can't connect to MySQL server (TCP/IP)
- 2006MySQL server has gone away
- 1114The table is full
- 1451Cannot delete or update a parent row: a foreign key constraint fails
- 1452Cannot add or update a child row: a foreign key constraint fails
- 1366Incorrect string/integer value for column
- 1044Access denied for user to database