2012年12月22日 星期六

Foreign Key 外來鍵

FOREIGN KEY
突然看這個字:FOREIGN外國人,我以前對於這個單字,考試拼字母老是出錯,剛剛仔細看一眼:將字根拆開:FORE-IGN, FORE是向前的意思, IGN,IN中間插一個G。圖像記憶法:一個外國人向前衝去在IN中插入一個G!
這樣,FOREIGN,外國人。
哈哈,記起來了。

回來看 FOREIGN KEY。外來鍵


SQL FOREIGN KEY Constraint 

SQL外來鍵的限制

FOREIGN KEY是一個資料表指向另一個資料表的主關鍵欄位(PRIMARY KEY)的鍵欄位。
也就是說這個鍵欄位的值其實是來自另一個資料表的關鍵欄位。特別是主關鍵欄位(PRIMARY KEY)。
舉例來說吧:
以下這兩個資料表:Persons 以及Orders
The "Persons" table:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

The "Orders" table:
O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

請注意看清楚:"Orders"資料表中的欄位-"P_Id"裡面的資料值,可以指向"Persons"資料表中欄位"P_Id"。
在"Persons"資料表中的"P_ID"這個欄位是"Persons"資料表的主關鍵欄位(PRIMARY KEY)。
在"Orders"資料表中的"P_ID"這個欄位是"Orders"資料表中的外來關鍵欄位(FOREIGN KEY)。
而 FOREIGN KEY constraint ,外來關鍵欄位限制,即是用來保護預防破壞了這個兩個資料表之間的正確連結。
FOREIGN KEY CONSTRAINT同時也防止不正確的資料被新增進去這個欄位,因為這個欄位裡面的資料值必須是指向另一個資料表關鍵欄位的資料值才可以。

沒有留言:

張貼留言

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。