1. 程式人生 > >mysql外來鍵的建立與型別

mysql外來鍵的建立與型別

之前看過一本“mysql必知必會”的入門書籍,我有選擇性的讀過兩遍,感覺比較不錯,例子很多並且簡單易懂,對於mysql入門來說挺適合的,不過缺點就是沒有重要的索引部分,在此先推薦一下。 

進入正題,如果想在兩個表中間裡連結關係(即外來鍵),則需要先選定一個父表、一個子表,以及確定這兩個表中的關聯項,這樣建立連結後當父表的連結項變更時,子表的相應項也會隨著變更(也可設定成被連結後的值無法變更,下面會詳細說)。

例如:

我建立了兩個表,父表是productinfo,子表是product,表結構如下圖

父表productinfo,為了簡便只設置了一個值,就是將被關聯的項,注意關聯項與被關聯項都一定要是key。


子表product,關聯項和被關聯項的各類引數(名稱、型別、長度)都應該是一樣的。


在navicat中關聯的方式:


sql語句形式為:ALTER TABLE `product` ADD CONSTRAINT `proid` FOREIGN KEY (`proid`) REFERENCES `productinfo` (`proid`) ON DELETE CASCADE ON UPDATE CASCADE;

其中:四中關聯方式分別為

cascade

父表上有修改時,子表同步修改

restrict

如果進行了關聯,那麼不允許父表相應項進行修改

no action

如果進行了關聯,那麼不允許父表相應項進行修改

set null

若父表上的項修改後,子表上的相應項設定為null