外部關(guān)鍵字(Foreign Key).當(dāng)一張二維表(如表A )的主關(guān)鍵字被包含在另一張二維表(如表B)中時,A表中的主關(guān)鍵字便成為B 表的外關(guān)鍵字。
外關(guān)鍵字表示了兩個關(guān)系之間的聯(lián)系。以另一個關(guān)系的外關(guān)鍵字作主關(guān)鍵字的表被稱為主表,具有此外關(guān)鍵字的表被稱為主表的從表。外關(guān)鍵字又稱作外鍵。
外鍵字的有效性
有很多時候,程序員會發(fā)現(xiàn)字段缺少、多余問題或者是創(chuàng)建外鍵以后就不能添加沒有受約束的行[特殊情況下是有必要的],這個時候不想對表結(jié)構(gòu)進行操作,就可以使用約束失效。
以 Northwind 為例:想給產(chǎn)品表【Products表】添加一條不受種類表【Categories表】限制的數(shù)據(jù)。可以使產(chǎn)品表中的 Categories 約束失效。
寫法:
ALTER?TABLE?dbo.Products?NOCHECK?CONSTRAINT?FK_Products_Categories
添加完成后再使其有效:
ALTER?TABLE?dbo.Products?CHECK
這樣就完成不受某表約束的數(shù)據(jù)添加了。
還有一個好處是:如上述例子。修改 Categories 表時 添加字段時 要把所有引用 Categories 表的外鍵給失效。等給 Categories 表添加字段完成后再使所有應(yīng)用 Categories 表的外鍵恢復(fù)有效性即可。
更多相關(guān)知識,請訪問:PHP中文網(wǎng)!
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END