在數(shù)據(jù)庫中,能維系表之間關(guān)聯(lián)的是什么?

在數(shù)據(jù)庫中,能維系表之間關(guān)聯(lián)的是什么?

外部關(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)聲明
THE END
喜歡就支持一下吧
點贊8 分享