mysql은 외부 링크 인덱스 데이터를 삭제합니다.
상위 행을 삭제하거나 업데이트 할 수 없음 : 외래 키 제약 조건이 실패 함 문제에 대한 해결책
쿼리 : DELETE FROM goods
WHERE goods_id
= '11'
오류 코드 : 1451
상위 행을 삭제하거나 업데이트 할 수 없음 : 외래 키 제약 조건이 실패합니다 ( webDB
. goods_properties_detail
, CONSTRAINT FK_rip_43
FOREIGN KEY ( goods_id
) REFERENCES goods
( goods_id
))
위는 레코드의 특정 필드가 InnoDB의 다른 테이블에 대한 외부 링크로 사용되기 때문입니다. 삭제 작업 중에 외부 링크가 자동으로 확인됩니다.
해결 방법 1 : 먼저 관련 데이터를 삭제하기로 결정한 다음 삭제합니다 (이는 비즈니스 논리에 더 부합하고 더 안전합니다).
해결 방법 2 : 외부 링크를 확인하지 말고 FOREIGN_KEY_CHECKS 변수를 설정하십시오.
SET FOREIGN_KEY_CHECKS = 0;
DELETE FROM `goods` WHERE `goods_id` = '11'
삭제 후 설정
SET FOREIGN_KEY_CHECKS = 1;
ps : 고유성 검사 해제
set unique_checks=0;
set unique_checks=1;