相关疑难解决方法(0)

在postgres中重置自动增量计数器

我想强制一个表的自动增量字段为某个值,我试着用这个:

ALTER TABLE product AUTO_INCREMENT = 1453
Run Code Online (Sandbox Code Playgroud)

ALTER SEQUENCE product  RESTART WITH 1453;
ERROR:  relation "your_sequence_name" does not exist
Run Code Online (Sandbox Code Playgroud)

我是postgres的新手:(

我有一个表productIdname领域

sql postgresql reset auto-increment

195
推荐指数
13
解决办法
16万
查看次数

postgres自动增量未在显式id插入上更新

我在postgres中有下表:

CREATE TABLE "test" (
    "id" serial NOT NULL PRIMARY KEY,
    "value" text
)
Run Code Online (Sandbox Code Playgroud)

我正在做以下插入:

insert into test (id, value) values (1, 'alpha')
insert into test (id, value) values (2, 'beta')

insert into test (value) values ('gamma')
Run Code Online (Sandbox Code Playgroud)

在前2个插入中,我明确提到了id.但是,在这种情况下,表的自动增量指针不会更新.因此在第3个插入中我得到错误:

ERROR:  duplicate key value violates unique constraint "test_pkey"
DETAIL:  Key (id)=(1) already exists.
Run Code Online (Sandbox Code Playgroud)

我从未在MyISAM和INNODB引擎中的Mysql中遇到过这个问题.显式与否,mysql总是根据最大行id更新自动增量指针.

postgres中这个问题的解决方法是什么?我需要它,因为我希望对我桌子中的某些ID进行更严格的控制.

更新: 我需要它,因为对于某些值我需要有一个固定的ID.对于其他新条目,我不介意创建新的条目.

我认为可以通过在我明确插入id时手动递增nextval指针来实现max(id) + 1.但我不知道该怎么做.

postgresql auto-increment

50
推荐指数
2
解决办法
2万
查看次数

标签 统计

auto-increment ×2

postgresql ×2

reset ×1

sql ×1