删除表级联不会删除该表的所有引用

问题描述

当我运行DROP TABLE 'User' cascade;时,它不会从其他引用User的表中删除记录。

如果我运行DELETE FROM 'User',它也会成功从其他表中删除记录。如何从DROP TABLE执行此操作?这很重要。

btw如果我在没有级联的情况下运行DROP TABLE 'User',它会告诉我其他表也依赖于此,因此请添加级联;

解决方法

如果您有一个指向表的外键约束,并用CASCADE删除该表,则该外键约束将被删除,因此结果是一致的,但不是您想要的。

如果要级联删除,可以简单地删除外键不为NULL的所有行:

DELETE FROM child
WHERE fk_col IS NOT NULL;

如果列为NOT NULL,则TRUNCATE会更快。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...