我想强制一个表的自动增量字段的一些值,我尝试了这样:
ALTER TABLE product AUTO_INCREMENT = 1453
AND
ALTER SEQUENCE product RESTART WITH 1453;
ERROR: relation "your_sequence_name" does not exist
我有一个表产品与Id和名称字段
我想强制一个表的自动增量字段的一些值,我尝试了这样:
ALTER TABLE product AUTO_INCREMENT = 1453
AND
ALTER SEQUENCE product RESTART WITH 1453;
ERROR: relation "your_sequence_name" does not exist
我有一个表产品与Id和名称字段
当前回答
ALTER SEQUENCE public."Table_Id_seq"
RESTART 50;
这个问题对我很管用。Postgresql版本14
其他回答
-- Change the starting value of the sequence
ALTER SEQUENCE project_id_seq RESTART 3000;
相同但充满活力:
SELECT SETVAL('project_id_seq', (SELECT MAX(id) FROM project));
SELECT的使用很奇怪,但它有效。
来源: https://kylewbanks.com/blog/Adding-or-Modifying-a-PostgreSQL-Sequence-Auto-Increment
编辑:删除+1建议在评论
注意,如果表名带有'_',它将在序列名中被删除。
例如,表名:user_tokens列:id 序列名称:usertokens_id_seq
下面的命令会自动执行此操作:这也会删除表中的所有数据。所以要小心。
TRUNCATE TABLE someTable RESTART IDENTITY;
下面是你要找的命令,假设你的product表序列是product_id_seq:
ALTER SEQUENCE product_id_seq RESTART WITH 1453;
为方便浏览者,由评论转换而成
从这条消息中不清楚正确的语法是什么。它是:
ALTER SEQUENCE product_id_seq RESTART WITH 1453;