首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

資料庫新手入門:MySQL 中定義外鍵與級聯操作實戰

     編輯:MySQL 資料庫相關知識

情境:電腦廠商的整機與零件資料

Pc 表儲存整機資訊,含 cpumodel 欄位;Parts 表儲存零件供貨資訊,含 model 欄位。業務規則:Pc.cpumodel 必須參照 Parts.model 存在的型號。

建立外鍵的三個步驟

  1. 建立資料表:
    CREATE TABLE parts (..., model VARCHAR(20) NOT NULL, ...);
    CREATE TABLE pc (..., cpumodel VARCHAR(20) NOT NULL, ...);
  2. 對參照欄位建立索引(必要條件):
    ALTER TABLE parts ADD INDEX idx_model (model);
    ALTER TABLE pc ADD INDEX idx_cpumodel (cpumodel);

    索引也可在 CREATE TABLE 時一併定義。

  3. 定義外鍵約束:
    ALTER TABLE pc ADD CONSTRAINT fk_cpu_model
    FOREIGN KEY (cpumodel) REFERENCES parts(model);

    此後嘗試插入 Parts 不存在的 CPU 型號會被阻擋。

級聯操作

若 Parts.model 變更需自動同步至 Pc.cpumodel,可加入 ON UPDATE CASCADE:

ALTER TABLE pc ADD CONSTRAINT fk_cpu_model
FOREIGN KEY (cpumodel) REFERENCES parts(model)
ON UPDATE CASCADE;

其他選項:RESTRICT(禁止父表變更)、SET NULL(子表設為 NULL)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved