postgresql 删除表

标签 postgresql

我有两个表(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)”)通过将 tbltbl_id 字段定义为 SERIAL

关于postgresql 删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8299341/

相关文章:

sql - 如何从sql中的所有列创建别名?

sql - 用于获取只读(不可变)PostgreSQL 表行数的索引?

python - SQLAlchemy Harvesine 大圆计算错误

r - 如何将集合变成集合成员的指标?

sql - SELECT column FROM tab1 WHERE test=test AND (SELECT col FROM tab2 WHERE qwe=qwe)?是否可以?

ruby-on-rails - 带有 docker-compose 的 Rails 应用程序无法读取 .env 文件

python - 如何在psycopg2中执行非sql命令

sql - 每周 Postgres 条目,每周

python - Django/Postgres 应用程序中的数据挖掘

C - 将结构的固定大小 vector 转换为动态分配