mysql外來鍵的建立與型別
阿新 • • 發佈:2019-01-26
之前看過一本“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