数据库——删除表中的级联的含义

简介: 通过以下这个例子来说明我对数据库当中删除表的级联的含义的理解。现在有一张表,名字叫PTYPES

通过以下这个例子来说明我对数据库当中删除表的级联的含义的理解。

现在有一张表,名字叫PTYPES

c803a44103c146319a2df8dc6958eb5e.png

使用如下语句删除这张表中的数据:

-- 表示删除这张表当中的数据,但是不删除这张表
  DELETE PTYPES

但是出现了如下错误:

4c1852444ced4c6d8bb1e9d80ee70110.png


原因如下:


要删除的这张表PTYPES主键PTNAME,是PRODUCTINFO的外键


6d4a8216200b48fd8cdfd95cd5ab1bd0.png

0f051ec4575e43a697cb7e73e4a19f52.png57c50572e6be45148492c991620830a9.png


解决方法一:


使用级联,去除两者之间的外键关系。


由于PTYPES会影响到PRODUCTINFO,因此在设计这张表的时候,在删除规则当中选择级联。

ca15a3ddb93a41fb9803b33f804ec43b.png725a577b5b0f4fd2b647b4e49dd4849c.png1adfd23003a84a15954d34a9243f795b.png


此时就可以删除成功了。

cbad9ec59bdc498ab2cbed7087f3c59a.png


那么这里的级联是什么意思呢?

我们在查看两张表:

a18ff9b582d141a48c644ac68ca9622c.png

由此说明删除表当中级联的含义:

如果删除了一张表,那么另外一张和它有外键关系的表当中存在外键关系的数据也会被它删除。

eddbdbfe95f441a0b483323e6f16d0bc.png


这里的删除规则当中如果设置为级联,是最严格的,表示如果删除数据,那么和它相关联的主键,父类的数据也会被删除。如果选择设置Null,则只是把与它相关联的数据设置为Null值,而不是直接删除。


相关文章
|
3天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
10 0
|
1天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
17 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
3天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
10 0
|
4天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
15 0
|
12天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
12天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
12天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
13天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql
|
13天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作