首页主机资讯创建外键的sql语句中ON DELETE用法

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

时间2024-06-25 15:26:03发布访客分类主机资讯浏览519
导读:在创建外键约束时,可以使用 ON DELETE 子句来指定当主键表中的记录被删除时外键表中的相应记录应该如何处理。ON DELETE 子句可以有以下几种选项: CASCADE: 当主键表中的记录被删除时,外键表中的相应记录也会被自动删除。...

在创建外键约束时,可以使用 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
);
    

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 创建外键的sql语句中ON DELETE用法
本文地址: https://pptw.com/jishu/683985.html
创建外键的sql语句是否必要 创建外键的sql语句对性能影响

游客 回复需填写必要信息