MYSQL的外來鍵

Joeysn發表於2018-03-12

關於MySQL外來鍵

前提條件:建立資料表使用InnoDB儲存引擎,欄位型別一致性,起初資料邏輯正確。

例如:ALTER TABLE `post`
ADD CONSTRAINT `FK_post_author` FOREIGN KEY (`author_id`) REFERENCES `adminuser` (`id`) ON DELETE CASCADE;


  1 . cascade方式
在父表上update/delete記錄時,同步update/delete掉子表的匹配記錄 


   2. set null方式
在父表上update/delete記錄時,將子表上匹配記錄的列設為null
要注意子表的外來鍵列不能為not null  


   3. No action方式
如果子表中有匹配的記錄,則不允許對父表對應候選鍵進行update/delete操作  


   4. Restrict方式
同no action, 都是立即檢查外來鍵約束


   5. Set default方式
父表有變更時,子表將外來鍵列設定成一個預設的值 但Innodb不能識別

相關文章