新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

sql如何创建外键约束,sql server创建外键语句

发布时间:2023-09-28 10:44:17

sql如何创建外键束缚

在SQL中,可使用以下语法来创建外键束缚:

1. 在创建表时添加外键束缚:

CREATE TABLE 表名 (

列1 数据类型,

列2 数据类型,

...

FOREIGN KEY (外键列) REFERENCES 参考表名 (参考表的列)
);

例如,创建一个名为"Orders"的表,包括一个外键列"CustomerID",参考"Customers"表的"CustomerID"列:

CREATE TABLE Orders (

OrderID int,

ProductName varchar(255),

CustomerID int,

FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);


2. 在已存在的表中添加外键束缚:

ALTER TABLE 表名
ADD FOREIGN KEY (外键列) REFERENCES 参考表名 (参考表的列);

例如,向已存在的"Orders"表中添加外键束缚:

ALTER TABLE Orders
ADD FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);


3. 可使用ON DELETE和ON UPDATE子句指定在主表中的行被删除或更新时的动作:

FOREIGN KEY (外键列) REFERENCES 参考表名 (参考表的列) ON DELETE 动作 ON UPDATE 动作

其中,动作可以是以下值之一:
- CASCADE:级联操作,即删除或更新主表中的行时,同时删除或更新外键表中的相关行。
- SET NULL:设置外键表中的外键列为NULL。
- SET DEFAULT:设置外键表中的外键列为默许值。
- NO ACTION:不履行任何操作,当删除或更新主表中的行时,如果外键表中存在与之关联的行,则会产生毛病。

例如,创建一个名为"Orders"的表,包括一个外键列"CustomerID",参考"Customers"表的"CustomerID"列,级联删除和级联更新:

CREATE TABLE Orders (

OrderID int,

ProductName varchar(255),

CustomerID int,

FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE CASCADE ON UPDATE CASCADE
);