PostgreSQL从SELECT中分配序列号

时间:2018-12-10 09:56:56

标签: sql postgresql

我想用特定表的max + 1重新开始序列。

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

ALTER SEQUENCE project_id_seq RESTART testVal;

这在testVal处给出语法错误。有人可以向我解释什么问题,提出替代解决方案吗?

1 个答案:

答案 0 :(得分:2)

对于序列,您应该使用setval

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

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