Backend Web/SQL · DB 기초
[SQL] Cannot delete or update a parent row
sofiaaa
2022. 8. 30. 12:44
반응형
Cannot delete or update a parent row:
a foreign key constraint fails (`db`.`t_seg`, CONSTRAINT `FK_SEG01` FOREIGN KEY (`RSEQ`)
REFERENCES `tt_seg` (`RSEQ`))Query is: DELETE
DELETE A, B, C
FROM A a
INNER JOIN B b ON b.key = a.key
INNER JOIN C c ON c.key = a.key
WHERE 1 = 1
이런 식으로 여러 테이블을 한번에 DELETE 하는 경우 문제가 발생했다.
해결 방법으로,
1. 삭제 순서 조정
해당 행을 참조하는 FOREIGN KEY를 먼저 삭제 하고 최초의 행을 삭제한다.
2. 외래키 체크 설정을 해제
FOREIGN KEY 체크 설정을 비활성화하고 테이블을 삭제 시킨 후,
다시 체크를 활성화하는 방법이다.
mysql> SET foreign_key_checks = 0;
mysql> drop table TABLENAME
mysql> SET foreign_key_checks = 1;
위의 1번 방법으로 문제를 해결하였고,
참조하는 row 나 테이블을 먼저 삭제해주는 것이 바람직하다.
반응형