3730: Cannot drop table referenced by a foreign key constraint
MySQL의미
다른 테이블의 외래 키가 이 테이블을 참조하고 있어 삭제할 수 없다. 참조가 존재하는 한 DROP은 차단된다.
원인
FK로 연결된 자식 테이블이 아직 존재하는데 부모 테이블을 삭제하려 함. 종속성 순서를 지키지 않음. 외래 키를 먼저 제거하지 않음.
해결 방법
먼저 참조하는 외래 키를 제거한 뒤(ALTER TABLE child_table DROP FOREIGN KEY fk_name;) 테이블을 삭제한다. 종속 테이블/제약 조건을 찾는다: SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'my_table'; 대량 작업에서는 SET FOREIGN_KEY_CHECKS = 0;을 일시적으로 사용할 수 있지만, 주의하고 작업 후 다시 1로 설정한다.
같은 데이터베이스의 다른 항목
- 1093You can't specify target table 'x' for update in FROM clause
- 1305PROCEDURE does not exist
- 1227Access denied; you need (at least one of) the PRIVILEGE
- 2013Lost connection to MySQL server during query
- 1153Got a packet bigger than 'max_allowed_packet' bytes
- 1969MariaDB: Query execution was interrupted (max_statement_time exceeded)
- 1927MariaDB: ER_CONNECTION_KILLED: Connection was killed (연결이 종료됨)