外來鍵的簡單使用
MySQL InnoDB 可以設定資料表之間的關聯,這樣一來父表異動時,子表可有相應的處理。
分別有以下四種:
範例:
父表是使用者 (user)
子表是文章 (post)
建立關聯的 SQL 語法:

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

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

這時我們修改或刪除使用者,如果有他有關聯的文章 MySQL 會一併處理。
分別有以下四種:
關鍵字 | 含義 |
---|---|
CASCADE | 關聯資料會一起刪除或修改。 |
SET NULL | 找不到關聯時會用 NULL 取代 (只能用於允許 NULL 的欄位)。 |
RESTRICT | 有關聯資料時會拒絕刪除或修改的要求 (預設)。 |
NO ACTION | 啥也不做,效果和 RESTRICT 一樣。 |
範例:
父表是使用者 (user)
欄位名稱 | 類型 | 備註 |
---|---|---|
id | int | PK |
name | varchar | 姓名 |
欄位名稱 | 類型 | 備註 |
---|---|---|
id | int | PK |
user_id | int | FK |
title | varchar | 標題 |
content | text | 內容 |
ALTER TABLE `post` ADD FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;用 phpMyAdmin 操作方式如下:

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

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

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