溫馨提示×

創(chuàng)建外鍵的sql語句中ON DELETE用法

sql
小樊
149
2024-06-25 11:45:28
欄目: 云計算

在創(chuàng)建外鍵約束時,可以使用 ON DELETE 子句來指定當主鍵表中的記錄被刪除時外鍵表中的相應記錄應該如何處理。ON DELETE 子句可以有以下幾種選項:

  1. CASCADE: 當主鍵表中的記錄被刪除時,外鍵表中的相應記錄也會被自動刪除。
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE CASCADE
);
  1. SET NULL: 當主鍵表中的記錄被刪除時,外鍵表中的相應記錄的外鍵列會被設置為 NULL。
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE SET NULL
);
  1. RESTRICT: 默認情況下,當主鍵表中的記錄被刪除時,如果在外鍵表中仍然存在與之關聯(lián)的記錄,則會阻止刪除操作。
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE RESTRICT
);
  1. NO ACTION: 與 RESTRICT 類似,當主鍵表中的記錄被刪除時,如果在外鍵表中仍然存在與之關聯(lián)的記錄,則會阻止刪除操作。這是默認行為。
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE NO ACTION
);

0