mysql 外键约束 同时删除和更新
时间: 2023-09-03 16:16:33 浏览: 158
在 MySQL 中,可以通过添加外键约束来实现级联更新和删除。具体来说,可以使用以下两种方式之一来实现:
1. ON DELETE 和 ON UPDATE 子句
在创建外键时,可以使用 ON DELETE 和 ON UPDATE 子句来指定在父表中的行被删除或更新时应该执行的操作。以下是一些可用的选项:
- CASCADE:当父表中的行被删除或更新时,子表中的相关行也应该被删除或更新。
- SET NULL:当父表中的行被删除或更新时,子表中的相关行的外键列应该设置为 NULL。
- RESTRICT:当父表中的行被删除或更新时,应该阻止对子表的操作。
- NO ACTION:与 RESTRICT 相同。
以下是一个示例:
```
CREATE TABLE parent (
id INT PRIMARY KEY
);
CREATE TABLE child (
id INT PRIMARY KEY,
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
```
在上面的示例中,如果 parent 表中的行被删除或更新,那么 child 表中的相关行也会被删除或更新。
2. SET NULL 和 SET DEFAULT 子句
在创建外键时,还可以使用 SET NULL 和 SET DEFAULT 子句来指定应该设置子表中的外键列的值。以下是一个示例:
```
CREATE TABLE parent (
id INT PRIMARY KEY
);
CREATE TABLE child (
id INT PRIMARY KEY,
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE SET NULL
ON UPDATE SET DEFAULT
);
```
在上面的示例中,如果 parent 表中的行被删除,那么 child 表中的相关行的 parent_id 列将被设置为 NULL。如果 parent 表中的行被更新,那么 child 表中的相关行的 parent_id 列将被设置为 parent 表中更新后的值的默认值。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)