개발자가 되고 싶은 1人

mysql 외래키 무시하고 데이터 삭제하기 본문

프로그래밍/Database

mysql 외래키 무시하고 데이터 삭제하기

인생을 노트하자 2021. 6. 18. 10:32

mysql에서 특정 테이블의 데이터 삭제시( delete 또는 truncate ) 다른 테이블과의 외래키 때문에 데이터 삭제가 안되는 경우가 있다.

 

참조하고 있는 테이블의 데이터가 존재하여 데이터를 삭제 하지 못할 때 큰 문제 없이 데이터를 삭제 할 수가 있는데...

 

부모 테이블과 자식 테이블이 있고 부모테이블의 pk가 자식 테이블의 FK로 관계가 설정된 경우.

 

1. 자식테이블의 데이터를 먼저 지우고 부모 테이블의 데이터를 지운다.

 

2. 1번도 귀찮을 경우 set foreign_key_check = 0; 쿼리 실행

 

위 쿼리를 실행 하면 FK 관계 설정이 되어 있더라도 부모 테이블의 데이터를 먼저 삭제 할 수 있다.

 

데이터 삭제가 완료 되었으면 기본 설정 값으로 돌려주면 되는데

 

set foreign_key_check = 1; 쿼리를 실행하면 끝.

 

 

 

[42000][1701] Cannot truncate a table referenced in a foreign key constraint (`test`.`student`, CONSTRAINT `FK_STUDY_` FOREIGN KEY (`grade`, `student_no`) REFERENCES `test`.`school`).

'프로그래밍 > Database' 카테고리의 다른 글

mysql event schedule  (0) 2021.12.20
mysql Database 및 Table dump, 복원  (0) 2021.11.11
mysql 원하는 인덱스 사용하기  (0) 2020.12.20
mysql 모니터링  (0) 2020.12.13
윈도우에서 mariadb 서비스 종료 및 시작  (0) 2020.06.05
Comments