>데이터 베이스 >MySQL 튜토리얼 >MySQL 오류 1452: 외래 키 제약 조건 위반을 어떻게 해결합니까?

MySQL 오류 1452: 외래 키 제약 조건 위반을 어떻게 해결합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-22 15:15:15619검색

MySQL Error 1452: How Do I Resolve Foreign Key Constraint Violations?

외래 키 제약 조건 위반: MySQL의 오류 1452 이해

MySQL 오류 1452, "하위 행을 추가하거나 업데이트할 수 없습니다: 외래 키 제약 조건 실패"는 외래 키 관계를 위반하면서 하위 테이블에 데이터를 삽입하거나 수정하려고 시도할 때 발생합니다. 이 오류는 상위 테이블의 참조 레코드가 누락되었거나 유효하지 않음을 나타냅니다.

설명한 시나리오에서는 소스 코드 테이블을 참조하여 sourcecodes_tags 테이블에 외래 키를 추가하려고 합니다. 하지만 잠재적인 충돌로 인해 실패합니다.

이 문제를 해결하려면 먼저 sourcecodes_tags 테이블에 고아 레코드가 있는지 확인해야 합니다. 고아 레코드는 소스 코드 테이블에 존재하지 않는 행을 참조하는 레코드입니다.

고아 레코드를 찾으려면 다음 쿼리를 실행하세요.

SELECT DISTINCT sourcecode_id
FROM sourcecodes_tags tags
LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id
WHERE sc.id IS NULL;

이 쿼리는 해당하는 소스 코드 ID를 나열합니다. 상위 테이블에 존재하지 않습니다.

고아 레코드를 식별한 후에는 sourcecodes_tags 테이블에서 해당 레코드를 제거할 수 있습니다. DELETE 문을 사용합니다. 분리된 레코드를 삭제한 후 외래 키 제약 조건을 성공적으로 추가할 수 있습니다.

또한 sourcecodes_tags 테이블에 유효한 소스 코드 ID를 삽입하고 있는지 확인하는 것이 중요합니다. 삽입된 ID가 소스코드 테이블에 없으면 1452 오류가 발생합니다.

위 내용은 MySQL 오류 1452: 외래 키 제약 조건 위반을 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.