1. 程式人生 > >資料庫存在外來鍵約束的情況下如何插入資料

資料庫存在外來鍵約束的情況下如何插入資料

1.已知兩個表格之間的關係如圖所示,我們可以知道stucou表中的couno為course表中couno的外來鍵(這裡可以檢視外來鍵的相關知識)


現在我們要往stucou表中插入資料。

1.由於外來鍵的約束,我們首先必須在course表中插入相應的資料(也就是兩個表格對應的couno值必須一致)

insert into Course values('110','課程名','課程類別','4.0','老師名','01','上課時間','22','44','1')

2.此時便可以在stucou中新增資料了

insert into StuCou values('10000012','110','4','報名','null')


3.這裡給stucou新增一個觸發器,當給stucou新增資料時,相應的,course表中的willnum也會增加(這裡的觸發器只給出了增加資料時給的反應的示例)

go
create trigger T_stt on stucou
for insert,update,delete
as
update course set willnum=willnum+(select count(couno) from inserted) where couno=(select couno from inserted)
go


結果如圖所示(這裡willnum=49是因為測試時多加了幾條資料)



ps:有時依然無法新增資料的原因可能在於觸發器:

記憶體中只有存在deleted表和inserted表,如果要修改,先把要修改的記錄放在deleted表裡,然後再把修改後的記錄放在inserted裡才行。把這個觸發器刪除之後恢復正常。