首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 外鍵約束語法詳解:子表、父表、ON DELETE CASCADE/SET NULL 行為差異

     編輯:Oracle 教學

Oracle 外鍵約束語法詳解

外鍵建立子表與父表的引用完整性。標準建表語法:

CREATE TABLE employees (
  employee_id    NUMBER(6),
  last_name      VARCHAR2(25) NOT NULL,
  email          VARCHAR2(25),
  salary         NUMBER(8,2),
  commission_pct NUMBER(2,2),
  hire_date      DATE NOT NULL,
  department_id  NUMBER(4),
  CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
    REFERENCES departments(department_id),
  CONSTRAINT emp_email_uk UNIQUE (email)
);

關鍵字解析

  • FOREIGN KEY (col):指定子表中的列。
  • REFERENCES parent_table(parent_col):標識父表中的列(必須為主鍵或唯一鍵)。
  • ON DELETE CASCADE:刪除父表行時,級聯刪除子表中匹配的所有行。
  • ON DELETE SET NULL:刪除父表行時,將子表對應外鍵列置為 NULL(前提:子表列允許空值)。

行為對比

子句父表刪除行動作適用場景
無(默認)若子表有引用行 → 報錯阻止刪除嚴格保護數據完整性
ON DELETE CASCADE自動刪除子表引用行主從強綁定,如訂單-明細
ON DELETE SET NULL子表外鍵列置 NULL弱關聯,如員工-部門(員工可無部門)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved