外來鍵的簡單使用

MySQL InnoDB 可以設定資料表之間的關聯,這樣一來父表異動時,子表可有相應的處理。
分別有以下四種:
關鍵字 含義
CASCADE 關聯資料會一起刪除或修改。
SET NULL 找不到關聯時會用 NULL 取代 (只能用於允許 NULL 的欄位)。
RESTRICT 有關聯資料時會拒絕刪除或修改的要求 (預設)。
NO ACTION 啥也不做,效果和 RESTRICT 一樣。

範例:
父表是使用者 (user)
欄位名稱 類型 備註
id intPK
name varchar姓名
子表是文章 (post)
欄位名稱 類型 備註
id intPK
user_id intFK
title varchar標題
content text內容
建立關聯的 SQL 語法:
ALTER TABLE `post` ADD FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
用 phpMyAdmin 操作方式如下:

在子表 (post) 選擇「關聯檢視」。

在外鍵限制式填入相關設定後儲存。

這時我們修改或刪除使用者,如果有他有關聯的文章 MySQL 會一併處理。

留言