[MySQL 에러] ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails 해결
리눅스/MySQL2022. 6. 30. 10:10
반응형
레코드를 삭제할때 아래와 같은 에러 메세지가 출력되었다면
mysql> delete from log where idx='161';
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`baudit`.`checklist`, CONSTRAINT `fk_checklist_log1` FOREIGN KEY (`log_idx`) REFERENCES `log` (`idx`))
다른 곳 (checklist 테이블의 log_idx 컬럼) 에서 현재 삭제하려는 데이터 (log 테이블의 idx 컬럼) 를 참조하고 있다는 메세지 입니다.
해결 방법으로는 아래 두가지가 있습니다.
1. 관련 데이터 삭제
순차적으로 checklist 테이블에서 관련 레코드 삭제 후 log 테이블에서 해당 레코드 삭제
2. 참조 무시하고 삭제
mysql> SET foreign_key_checks = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from log where idx='161';
Query OK, 1 row affected (0.02 sec)
mysql> SET foreign_key_checks = 1;
Query OK, 0 rows affected (0.00 sec)
반응형
'리눅스 > MySQL' 카테고리의 다른 글
MySQL 테이블별 용량 및 레코드 수 조회하기 (0) | 2022.08.09 |
---|---|
xtrabackup 을 이용한 MySQL 8.0.28 Replication 구성하기 (0) | 2022.07.28 |
CentOS 7 에서 MySQL 8.0.29 설치 (gcc 관련 에러시에만 참고) (0) | 2022.06.20 |
CentOS 7 에서 MySQL client 8.0.21 설치하기 (caching_sha2_password 지원) (0) | 2022.06.09 |
MySQL 실시간 쿼리 확인 (0) | 2022.05.25 |
댓글()