PostgreSQL从SELECT中分配序列号

我想用某个表的最大1重启序列 .

SELECT max(id)+1 
    INTO testVal
FROM project;

ALTER SEQUENCE project_id_seq RESTART testVal;

这会在testVal中出现语法错误 . 有人可以解释一下我有什么问题,提出替代解决方案吗?

回答(1)

2 years ago

对于序列,您应该使用setval

SELECT SETVAL('project_id_seq', (SELECT max(id)+1 FROM project))

https://www.postgresql.org/docs/current/functions-sequence.html