小编jgr*_*cha的帖子

在 Postgresql 中重新启动标识列

对于serialPostgresql < 10 中使用的列,我们按名称管理序列。我们能够通过以下方式重置序列:

SELECT setval('table_id_seq', (SELECT MAX(id) FROM table));
Run Code Online (Sandbox Code Playgroud)

从版本 10 开始,使用标识列,无需使用序列名称。那很好。

ALTER TABLE table ALTER COLUMN id RESTART WITH 1000;
Run Code Online (Sandbox Code Playgroud)

如何在max(id)不知道序列名称的情况下将标识列设置为?

就我从ALTER TABLE 语法中看到的而言,没有办法让子查询来计算序列的开始。

我想写一些类似的东西:

ALTER TABLE table ALTER COLUMN id RESTART WITH (SELECT MAX(id) FROM table);
Run Code Online (Sandbox Code Playgroud)

postgresql sequence identity

3
推荐指数
1
解决办法
77
查看次数

标签 统计

identity ×1

postgresql ×1

sequence ×1