다음과 같은 오류가 발생합니다. 저 좀 도와 주 시겠어요?
메시지 547, 수준 16, 상태 0, 줄 1
INSERT 문이 FOREIGN KEY 제약 조건 “FK_Sup_Item_Sup_Item_Cat”과 충돌했습니다. 데이터베이스 “dev_bo”, 테이블 “dbo.Sup_Item_Cat”에서 충돌이 발생했습니다. 그 진술서는 만료되었습니다.
암호:
insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id,
status_code, last_modified_user_id, last_modified_timestamp, client_id)
values (10162425, 10, 'jaiso', '123123',
'a', '12', '2010-12-12', '1062425')
마지막 열 client_id
에서 오류가 발생했습니다. 나는 dbo.Sup_Item_Cat
sup_item에 해당하는 열에 이미 존재하는 값을 넣으려고 했지만 기쁨은 없습니다 🙁
답변
당신의 테이블에서 dbo.Sup_Item_Cat
에는 다른 테이블에 대한 외래 키 참조가 있습니다. FK가 작동하는 방식은 해당 테이블에 참조 된 테이블의 기본 키 열에도없는 값을 가질 수 없다는 것입니다.
SQL Server Management Studio가있는 경우 SQL Server Management Studio를 열고 sp_help
‘dbo.Sup_Item_Cat
‘를 클릭하십시오. FK가있는 열과 참조하는 테이블의 열을 참조하십시오. 잘못된 데이터를 삽입하고 있습니다.
더 나은 설명이 필요하면 알려주세요!
답변
외래 키 필드를 채우려 고하는 동안 수신 된 오류 메시지와 관련 하여이 문제가 발생했습니다. 나는 대답을 찾기 위해이 페이지에 갔다. 이 페이지에서 확인 된 답변은 실제로 올바른 답변이지만 불행히도 SQL에 익숙하지 않은 사람들에게는 답변이 약간 불완전하다고 생각합니다. 코드 작성에 상당히 익숙하지만 데이터베이스 테이블 작성뿐만 아니라 SQL 쿼리도 처음입니다.
확인 된 답변이 정확함에도 불구하고 :
마이크 M은 다음과 같이 썼다.
“FK가 작동하는 방식은 해당 테이블에 참조 된 테이블의 기본 키 열에도없는 값을 가질 수 없다는 것입니다.”
이 답변에서 빠진 것은 간단합니다.
기본 키가 포함 된 테이블을 먼저 작성해야합니다.
그것을 말하는 또 다른 방법은;
외래 키가 포함 된 자식 테이블에 데이터를 삽입하기 전에 기본 키가 포함 된 부모 테이블에 데이터를 삽입해야합니다.
요컨대, 많은 튜토리얼 이이 사실에 유약 한 것처럼 보이므로 직접 시도해보고 조작 순서가 있음을 알지 못하면이 오류가 발생합니다. 기본 키 데이터를 추가 한 후에는 자식 테이블의 외래 키 데이터가 부모 테이블의 기본 키 필드를 따라야합니다. 그렇지 않으면이 오류가 계속 발생합니다.
누군가가 이것을 멀리 읽으면. 이것이 이것이 답을 더 명확하게하는 데 도움이되기를 바랍니다. 나는 이런 종류의 일이 매우 간단하고 책을 열면이 질문에 게시되기 전에이 질문에 대답했을 것이라고 생각할 수있는 일부 사람들이 있다는 것을 알고 있지만 진실은 모든 사람이 같은 방식으로 배우지는 않는다는 것입니다.
답변
외래 테이블에 존재하지 않는 외래 키 열에 값이있는 레코드를 삽입하려고합니다.
예를 들어, Books에 Authors 테이블에 외래 키 제약 조건이있는 Books and Authors 테이블이 있고 저자 레코드가없는 장부 레코드를 삽입하려고하면.
답변
자세한 설명을 위해 명세서를 게시해야합니다. 그러나…
이 오류는 데이터를 삽입하는 테이블이 다른 테이블과 외래 키 관계를 가지고 있음을 의미합니다. 데이터를 삽입하려면 외래 키 필드의 값 이 다른 테이블에 먼저 존재 해야 합니다.
답변
문제는 내가 볼 수있는 client_id와 관련이 없습니다. 문제가 네 번째 열인 sup_item_cat_id에있는 것 같습니다.
나는 달릴 것이다
sp_helpconstraint sup_item
외래 키 FK_Sup_Item_Sup_Item_Cat에 대해 반환 된 constraint_keys 열에주의하여 어떤 열이 실제 문제인지 확인하지만 수정하려는 열이 아닌 것이 확실합니다. ‘123123’외에도 의심스러워 보입니다.
답변
내가 찾은 것은 모든 필드가 정확히 일치해야한다는 것입니다.
예를 들어, ‘고양이’를 보내는 것은 ‘고양이’를 보내는 것과 다릅니다.
이 문제를 해결하기 위해 데이터를 삽입하는 테이블에서 FK 코드를 스크립트로 작성하고 제약 조건이있는 “외국 키”(내 경우에는 2가 있음)를 기록하고 두 필드 값이 일치하는지 확인했습니다 FK 제약 조건 오류가 발생하는 테이블에 있던 그대로.
문제를 일으키는 2 개의 필드를 수정하면 인생은 좋았습니다!
더 나은 설명이 필요하면 알려주십시오.
답변
또한 SQL 코드에서 동일한 오류가 발생했습니다.이 솔루션은 저에게 효과적입니다.
기본 테이블의 데이터 확인 기본 키 열에없는 열 값을 입력하고있을 수 있습니다.
