带有 SELECT 子句的 PostgreSQL ALTER SEQUENCE

PostgreSQL ALTER SEQUENCE with SELECT clause

我正在尝试更改数据库顺序并使用复杂 SELECT 语句返回的值重新启动它。这是我准备复制问题的简化示例:

ALTER SEQUENCE
    abc.my_seq
RESTART WITH
    (SELECT 1234)

当我运行这个查询时,我得到以下错误:

ERROR: syntax error at or near "("

为什么我会收到此错误消息?是否可以根据 SELECT 语句的返回值设置序列的值?

您可以改用setval()

select setval('abc.my_seq', (select ... 
                             from ...));

请注意 select 周围的括号。