sql

sql怎么创建外键约束

小亿
196
2023-09-28 10:44:17
栏目: 云计算

在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
);
```

0
看了该问题的人还看了