我有两个表(tbl 和 tbl_new),它们都使用相同的序列 (tbl_id_seq)。我想删除其中一张 table 。在 tbl 上,我删除了修饰符“not null default nextval('tbl_id_seq'::regclass)”,但该修饰符保留在 tbl_new 上。我收到以下错误:
错误:无法删除表 tbl,因为其他对象依赖于它 详细信息:表 tbl_new 列 id 的默认值取决于序列 tbl_id_seq
审核后http://www.postgresql.org/docs/9.1/static/sql-droptable.html 看起来只有 CASCADE 和 RESTRICT 作为选项。
最佳答案
您需要decouple它“属于”的序列和表:
ALTER SEQUENCE "tbl_id_seq" OWNED BY NONE;
我想它是创建的 automatically (和“绑定(bind)”)通过将 tbl
的 tbl_id
字段定义为 SERIAL
。
关于postgresql 删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8299341/