【PG】DROP TABLE ... CASCADE
问题
ERROR: cannot drop table wx_user_tag because other objects depend on it DETAIL: default value for column id of table wx_user_tag depends on sequence wx_user_tag_id_seq HINT: Use DROP … CASCADE to drop the dependent objects too.
解决
这个错误消息表明wx_user_tag
表的 id 列依赖于 wx_user_tag_id_seq
序列,因此在删除该表时需要处理这个依赖关系。要解决这个问题,你可以使用 DROP TABLE ... CASCADE
命令,这将删除该表以及所有依赖于该表的对象。
你可以按照以下步骤操作:
使用 DROP TABLE ... CASCADE
:
这个命令将删除表 wx_user_tag
以及依赖它的所有对象,包括 wx_user_tag_id_seq
序列。
DROP TABLE wx_user_tag CASCADE;
如果你不想删除序列:
你可以先删除表的列依赖关系,然后删除表本身。
首先,删除 id 列的默认值:
ALTER TABLE wx_user_tag ALTER COLUMN id DROP DEFAULT;
然后删除表:
DROP TABLE wx_user_tag;
最后,如果需要,可以手动删除序列:
DROP SEQUENCE wx_user_tag_id_seq;
选择适合你需求的方法。如果不确定,可以先备份相关数据。