sql怎么创建外键约束

sql
1076
2023/10/11 10:44:17
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

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

推荐阅读: sql日志满了如何清理