相关疑难解决方法(0)

删除PostgreSQL中的表而不删除关联的序列

我有一张桌子foo.为了快速升级/部署我的网站,我创建了一个新表tmp_foo,以包含一些新数据:

create table tmp_foo (like foo including constraints including defaults including indexes);
Run Code Online (Sandbox Code Playgroud)

现在每个表都有一个PK id列,如下所示:

   Column    |         Type          |                                Modifiers                                 
-------------+-----------------------+--------------------------------------------------------------------------
 id          | integer               | not null default nextval('foo_id_seq'::regclass)
Run Code Online (Sandbox Code Playgroud)

重要的是,两个表都依赖于完全相同的序列foo_id_seq.没有tmp_foo_id_seq.这对我来说似乎没问题.

在此之后,我加载tmp_foo了新数据并重命名了表格,以便tmp_foo接管真实foo,并且原始版本foo成为了foo_old.现在我试着放弃foo_old:

db=> drop table foo_old ;
ERROR:  cannot drop table foo_old because other objects depend on it
DETAIL:  default for table foo_old column id depends on sequence foo_id_seq
Run Code Online (Sandbox Code Playgroud)

很公平,id …

sql postgresql sequences sequence

12
推荐指数
1
解决办法
5315
查看次数

标签 统计

postgresql ×1

sequence ×1

sequences ×1

sql ×1