2012-09-06 80 views
1

我有以下字段兩個表:外鍵衝突無法插入數據

表1:

學生碩士

領域:

stu_id(primary key) 
name 
class 
doc upload 
sub_id(foreign_key) 

表2:

個主題

領域:

sub_id(primary key) 
subject name 

但是,當我在表格中插入條目它提供了以下錯誤。

INSERT語句與FOREIGN KEY約束「FK__student_m__sub_i__0C85DE4D」衝突。衝突發生在數據庫「test2」,表「dbo.subject」,列'sub_id'**

請問我在哪裏錯了?

+0

您是否嘗試將subid添加到在科目中不存在的學生主人? –

回答

2

因爲你嘗試插入其中不存在的int SubjectStudent Master的sub_id值(沒有在Subject表中沒有引用)

如果這些都是第一的記錄,然後確保,你首先插入Subject那麼Student Master

+0

但是我有一個下拉菜單作爲主題誰的sub_id是從主題表中獲得的值 – Coder1010

+0

然後您應該測試您的插入,因爲錯誤意味着我和其他人描述的內容。可能問題出在你的代碼中。 –

+0

我已經檢查了被插入student_master的sub_id已經存在於主題表中。我知道外鍵必須存在於其主鍵的表中。 – Coder1010

0

這是因爲你在Student Master表,sub_id不存在對錶subject插入記錄。請記住,您已將Student Master表的sub_id指定爲來自subject表的外鍵。這也意味着Student Master表依賴於subject表。這打破了參照完整性。

+0

我應該怎麼做才能糾正? – Coder1010

+0

@ Coder1010最好的方法是先在主題表上插入所有需要的記錄(*,你認爲它可能會*),然後在插入'學生主表'時使用'ID' –

+0

I已經檢查了被插入到student_master中的sub_id已經存在於主題表中。我知道外鍵在它作爲主鍵的表中必須存在的基本原理。 – Coder1010

0

FK的工作方式是它不能在該列中有一個值不在被引用表的主鍵列中。

因爲它是一個外鍵約束,它告訴你試圖插入表中的值不在引用表中。

因此,您首先必須確保插入到Student表中sub_id可用於subject表中。

編輯:

糾正它嘗試在SQL Server Management Studio中,這個命令:

sp_help 'dbo.subject' 
+0

但是我的主題是一個從主題表綁定值的下拉列表,意思是主題表中存在所有的值。那麼? – Coder1010

+0

請參閱我的編輯.. @ Coder1010 –

0

您需要先子記錄插入主記錄。 首先在Student Master表中插入記錄,然後嘗試在Subject表中插入。如果您向我發送您的插入語句, 將會更好地幫助您。