当我运行DROP TABLE 'User' cascade;
时,它不会从其他引用User的表中删除记录。
如果我运行DELETE FROM 'User'
,它也会成功从其他表中删除记录。如何从DROP TABLE执行此操作?这很重要。
btw如果我在没有级联的情况下运行DROP TABLE 'User'
,它会告诉我其他表也依赖于此,因此请添加级联;
答案 0 :(得分:1)
如果您有一个指向表的外键约束,并用CASCADE
删除该表,则该外键约束将被删除,因此结果是一致的,但不是您想要的。
如果要级联删除,可以简单地删除外键不为NULL的所有行:
DELETE FROM child
WHERE fk_col IS NOT NULL;
如果列为NOT NULL
,则TRUNCATE
会更快。