加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL舍弃被其它表关联的主表

发布时间:2021-05-22 05:42:31 所属栏目:编程 来源:互联网
导读:删除父表有以下两种要领: 先删除与它关联的子表,再删除父表;可是这样会同时删除两个表中的数据。 将关联表的外键束缚打消,再删除父表;合用于必要保存子表的
删除父表有以下两种要领:

先删除与它关联的子表,再删除父表;可是这样会同时删除两个表中的数据。

将关联表的外键束缚打消,再删除父表;合用于必要保存子表的数据,只删除父表的环境。


下面先容了怎样打消关联表的外键束缚并删除主表,也就是上面所说的删除父表的第二种要领。
 
在数据库中建设两个关联表。建设表 tb_emp4 的 SQL 语句如下: CREATE TABLE tb_emp4 ( id INT(11) PRIMARY KEY, name VARCHAR(22), location VARCHAR (50) );
接下来建设表 tb_emp5,SQL 语句如下: CREATE TABLE tb_emp5 ( id INT(11) PRIMARY KEY, name VARCHAR(25), deptId INT(11), salary FLOAT, CONSTRAINT fk_emp4_emp5 FOREIGN KEY (deptId) REFERENCES tb_emp4(id) );
行使 SHOW CREATE TABLE 呼吁查察表 tb_ emp5 的外键束缚,SQL 语句和运行功效如下: mysql> SHOW CREATE TABLE tb_emp5G; *************************** 1. row *************************** Table: tb_emp5 Create Table: CREATE TABLE `tb_emp5` ( `id` int(11) NOT NULL, `name` varchar(25) DEFAULT NULL, `deptId` int(11) DEFAULT NULL, `salary` float DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_emp4_emp5` (`deptId`), CONSTRAINT `fk_emp4_emp5` FOREIGN KEY (`deptId`) REFERENCES `tb_emp4` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec) 由运行功效可以看出,tb_emp5 表为子表,具著名称为 fk_emp4_emp5 的外键束缚;tb_emp4 为父表,其主键 id 被子表 tb_ emp5 所关联。

删除被数据表 tb_emp5 关联的数据表 tb_emp4,SQL 语句如下: mysql> DROP TABLE tb_emp4; ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails 由运行功效可以看出,当主表在存在外键束缚时,不能被直接删除。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读