我想强制一个表的自动增量字段的一些值,我尝试了这样:

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

其他回答

下面的命令会自动执行此操作:这也会删除表中的所有数据。所以要小心。

TRUNCATE TABLE someTable RESTART IDENTITY;

下面是你要找的命令,假设你的product表序列是product_id_seq:

ALTER SEQUENCE product_id_seq RESTART WITH 1453;

要重置自动递增,您必须通过使用以下查询获得您的序列名。

语法:

SELECT pg_get_serial_sequence(‘tablename’, ‘ columnname‘);

例子:

SELECT pg_get_serial_sequence('demo', 'autoid');

查询将返回autoid的序列名为"Demo_autoid_seq" 然后使用以下查询重置自动id

语法:

ALTER SEQUENCE sequenceName RESTART WITH value;

例子:

ALTER SEQUENCE "Demo_autoid_seq" RESTART WITH 1453;

为方便浏览者,由评论转换而成

从这条消息中不清楚正确的语法是什么。它是:

ALTER SEQUENCE product_id_seq RESTART WITH 1453;

要将其设置为下一个最大值,您可以使用:

SELECT SETVAL(pg_get_serial_sequence('table_name', 'column_name'), (SELECT MAX(column_name) FROM table_name));