mysql删除带外键约束的表的方法

Posted on 2021-05-11 10:56  风行天下-2080  阅读(1492)  评论(0编辑  收藏  举报

1、

https://www.cnblogs.com/jiazhutao/p/12575821.html

在MySQL中删除一张表或一条数据的时候,出现
[Err] 1451 -Cannot deleteorupdatea parent row:
aforeignkeyconstraintfails (...)

这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。

禁用外键约束,我们可以使用:

SET FOREIGN_KEY_CHECKS=0;

然后再删除数据

启动外键约束,我们可以使用:
SET FOREIGN_KEY_CHECKS=1;

查看当前FOREIGN_KEY_CHECKS的值,可用如下命令:
SELECT @@FOREIGN_KEY_CHECKS;

2、

https://www.cnblogs.com/tjudzj/p/10003908.html

mysql清空表可以用delete和truncate两个命令来完成:

     1. delete

         ① 语法:delete from table_name;

         ② 示例:DELETE FROM `order`;

     2. truncate

         ① 语法:truncate table table_name;

         ② 示例:TRUNCATE TABLE `order`;

    3. 区别

        ① 使用delete清空表中的记录,内容的ID仍然从删除点的ID继续建立,而不是从1开始。而truncate相当于保留了表的结构而重新建立了一张同样的新表。delete的效果有点像将mysql表中所有记录一条一条删除到删完。

        ② 效率上truncate比delete快。但truncate删除后不记录mysql日志,不可以恢复数据。

Copyright © 2024 风行天下-2080
Powered by .NET 8.0 on Kubernetes