gpt4 book ai didi

插入时出现 PostgreSQL BIGSERIAL 和 "duplicate key"

转载 作者:行者123 更新时间:2023-11-29 12:10:09 24 4
gpt4 key购买 nike

我有一张 table

CREATE TABLE users (
id BIGSERIAL NOT NULL PRIMARY KEY,
created_at TIMESTAMP DEFAULT NOW()
);

先跑

INSERT INTO users (id) VALUES (1);

跑完后

INSERT INTO users (created_at) VALUES ('2016-11-10T09:37:59+00:00');

我明白了

ERROR: duplicate key value violates unique constraint "users_pkey" DETAIL: Key (id)=(1) already exists.

为什么我自己插入“id”时id序列没有递增?

最佳答案

这是因为 DEFAULT 子句只有在您省略 SET 子句中的列或插入特殊值 DEFAULT 时才会被评估。

在您的第一个 INSERT 中,DEFAULT 子句未被评估,因此序列不会增加。您的第二个 INSERT 使用 DEFAULT 子句,序列增加并返回值 1,这与前面的 INSERT 中明确给出的值冲突.

不要将 INSERT 与使用序列的自动值创建和显式指定列的 INSERT 混合使用。或者如果你必须这样做,你应该确保这些值(value)观不会发生冲突,例如通过对自动生成的值使用偶数,对显式 INSERT 使用奇数。

关于插入时出现 PostgreSQL BIGSERIAL 和 "duplicate key",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com