知識盲點:存在外鍵的的表,在插入數據時應該如何操作?


今天學習SQL,涉及到了有外鍵的表新增數據的問題,心里有一個疑問:有外鍵的表,可以直接插入數據嗎?

答案是否定的,有外鍵,必須先在主表中添加數據,然后再添加附表數據,否則會提示約束錯誤。

自己把教材上的案例照着手敲一遍,加深印象。

 

以下是搜集網絡上的解釋,更加清晰明了。

 

 

有外鍵的情況應該先添加主表數據,再添加副表數據。
如:有以下兩張表

班級表:

1
2
3
4
CLASSID  NAME
1        一班
 
2        二班

學生表:

1
2
3
4
5
6
7
SID     NAME    CLASSID
 
1       張三        1
 
2       李四        1
 
3       王五        2

  

其中學生表中的CLASSID是班級表CLASSID的外鍵。
現在要求在學生表中添加一條SID=4,NAME=趙六,CLASSID=3的數據,那么只能先在班級表中加入一條新數據。
insert into 班級表 values (3,'三班');
然后再在學生表中添加:
insert into 學生表 values (4,'趙六',3);

 

另外的方法

1、先主表插入數據,再表插入數據集
2、先禁用外鍵約束
ALTER TABLE 表名 NOCHECK CONSTRAINT 外鍵約束名
插入數據
再啟用約束
ALTER TABLE 表名 CHECK CONSTRAINT 外鍵約束名

 

主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重復,所以,身份證號是主鍵。
外鍵用於與另一張表的關聯。是能確定另一張表記錄的字段,用於保持數據的一致性。比如,A表中的一個字段,是B表的主鍵,那他就可以是A表的外鍵。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM