我想强制一个表的自动增量字段的一些值,我尝试了这样:
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和名称字段
当前回答
下面是你要找的命令,假设你的product表序列是product_id_seq:
ALTER SEQUENCE product_id_seq RESTART WITH 1453;
其他回答
使用这个查询来检查什么是序列键与模式和表,
SELECT pg_get_serial_sequence('"SchemaName"."TableName"', 'KeyColumnName'); // output: "SequenceKey"
使用这个查询逐个增加增量值,
SELECT nextval('"SchemaName"."SequenceKey"'::regclass); // output 110
当插入到下一个表时,增量值将被用作键(111)。
使用此查询将特定值设置为增量值
SELECT setval('"SchemaName"."SequenceKey"', 120);
当插入到下一个表时,增量值将被用作键(121)。
-- 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建议在评论
我不确定以上所有的答案, 如果我没有序列名呢? 如果我不想截断我的表呢?
下面的查询帮助我做到这一点,而不影响现有的数据。
ALTER TABLE <<table_name>>
ALTER COLUMN <<primary_key_column_name>> RESTART SET START 4044;
如果你想从GUI重置自动增量,那么按照这个步骤。
进入数据库 点击公共 在表格列表页面,你可以看到像“表”,“视图”,“序列”这样的标签。 点击序列 当你点击“序列”,你可以看到所有的序列列表,点击任何你想重置 之后,你可以看到多种选择,如“改变”,“设置值”,“重新启动”,“重置”等… 然后点击重置,然后添加一个新行。
下面的命令会自动执行此操作:这也会删除表中的所有数据。所以要小心。
TRUNCATE TABLE someTable RESTART IDENTITY;