温馨提示×

创建外键的sql语句中ON DELETE用法

sql
小樊
158
2024-06-25 11:45:28
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在创建外键约束时,可以使用 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: 默认情况下,当主键表中的记录被删除时,如果在外键表中仍然存在与之关联的记录,则会阻止删除操作。
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE RESTRICT
);
  1. NO ACTION: 与 RESTRICT 类似,当主键表中的记录被删除时,如果在外键表中仍然存在与之关联的记录,则会阻止删除操作。这是默认行为。
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE NO ACTION
);

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:创建外键的sql语句注意事项

0