2013-03-19 3 views
0

나는 다음과 같은 연결 3 개 테이블이 있습니다충돌은 포함이 PK

@tutor_id as varchar(20), 
@module_id as varchar(20) 


INSERT INTO tutor_module(tutor_id, module_id) VALUES(@tutor_id, @module_id); 

: 아래이 테이블에 데이터를 입력 할 수

http://imageshack.us/photo/my-images/7/41645335.jpg/ 

을 내 저장 프로 시저를 사용자가 단추 "추가"단추를 클릭 할 때 양식에서 2 변수에 제공된 데이터

그러나 저장 프로 시저를 호출 할 때이 문제가 발생했습니다 : "INSERT st atement는 FOREIGN KEY 제약 조건 "FK_tutor_module_module"과 충돌합니다. 충돌은 데이터베이스 "C : \ USERS \ DUCTRIEU \ DESKTOP \ DROPBOX \ G20547722 \ APP_DATA \ G20547722DB.MDF", 테이블 "dbo.module", 열 'module_id'에서 발생했습니다. 문이 종료되었습니다. "

어느 한 날 실수를하지 않고이 테이블에 데이터를 삽입하는 방법을 알려 주시기 바랍니다 수 있습니까? 그들의 데이터 형식은 VARCHAR (20)입니다.

가 대단히 감사합니다

답변

0

module 테이블에 존재하지 않는 module_id의 값을 삽입하려고하면 외래 키의 전체 지점이됩니다. 이것은 매우 분명하게 들리 겠지만 실수를 피하기 위해 먼저 및 module_id의 값은 tutor에 있습니다. d module 테이블 각각

+0

변수 "@tutor_id"에는 웹 양식에서 보낸 데이터가 포함됩니다. 변수 "@module_id"는 모듈 테이블에서 선택된 데이터를 포함합니다. 그리고 Tutor와 Module의 두 테이블은 이미 자신의 데이터를 포함하고 있습니다. – nghich1

+0

@ user2180317 글쎄, 'module_id'에 대한 값을 가져 오는 중에 오류가 발생합니다. 'module'테이블에 존재하지 않는 값을 삽입하려고하기 때문에 오류라고합니다. 문안을 수정하여 실제로 어떤 값이 삽입하려고하는지 확인할 수 있습니까? – Lamak

+0

죄송합니다. 당신 말이 맞아요. 모듈 테이블의 module_id 형식이 BN0001이지만/BN0001을 삽입하려고했습니다. – nghich1