- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一张 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/
我正在尝试创建以 Bigserial 数据类型作为主键的 Postgres 表。创建表后,表定义将更改为 bigint NOT NULL DEFAULT nextval('transactions.t
我有一个客户,每年有大约 1100 万条数据记录。我正在使用 bigserial 作为我的 ID。 我的问题是,如果它用完了通常的数字,接下来我该怎么办? 对不起,我是 Postgres 的菜鸟。 最
我有一个使用以下 SQL 创建的 postgres 表: CREATE TABLE mytable ( mytable_id BIGSERIAL NOT NULL, mytable_c
我有一个 PgSQL 9.4.3 服务器设置,之前我只使用公共(public)模式,例如我创建了一个这样的表: CREATE TABLE ma_accessed_by_members_tracking
我无法在 POSTGRES 数据库中插入记录,我希望外键为空。 我的 table : CREATE TABLE sad_avaliado ( id BIGSERI
我是 PostgreSQL 的新手,因为自动递增我们必须使用 BigSerial 或 Serial,所以任何人都可以解释一下我们在创建表时必须使用哪一个。哪一个是最好的,请明智地解释场景。 最佳答案
我正在构建一个必须使用少量现有数据库的应用程序,其中一个 (Postgresql) 使用 BIGSERIAL 作为表中的主键。我的问题是,当我将列添加到 sqlalchemy Base 时,在定义表时
为了在 postgres 中将整数数据类型转换为 bigserial,我运行了以下命令,但它没有更改其数据类型,但它正在更改修饰符 CREATE SEQUENCE id; ALTER TABLE us
我有一个跨两个脚本定义的表,如下所示(我省略了不需要的细节): CREATE TABLE a (id BIGSERIAL NOT NULL PRIMARY KEY); ALTER TABLE IMAG
我正在使用 postgres 和 Hibernate,并且我注意到生成的 id 有一些奇怪的地方。它在序列中产生了巨大的跳跃,我有一个有 1524 行的表,但最高 id 仍然是 602778。 我的
我有一张 table CREATE TABLE users ( id BIGSERIAL NOT NULL PRIMARY KEY, created_at TIMESTAMP DEFAULT
假设我有以下表格。 CREATE TABLE IF NOT EXISTS Game ( GameNr BIGSERIAL PRIMARY KEY, blabla
我正在开发一个将数据存储在 PostgreSQL 数据库中的新应用程序。其他数据类型包括来自某些测量设备的仪表记录。每个客户可能有成百上千台这样的设备,而且通常每天都提供很少的记录。新记录通过简单地删
我希望下面的代码能够创建具有 BIGSERIAL 列类型 id 的表。 @Entity public class NewEntity1 implements Serializable { pr
我正在尝试使用外部数据包装器从其他两个 Postgres 数据库插入 Postgres 数据库中的表。目标是拥有一个独立于源的自动生成主键,因为将有两个以上。 我首先像这样定义表: 目标数据库: cr
当我尝试通过 alter 命令更改表中列的数据类型时... alter table temp alter column id type bigserial; 我明白了 ERROR: type "bi
我想在 Sequelize 模型中使用 PostgreSQL BIG SERIAL 类型作为 id。我该怎么做呢? 我发现当你这样做时,Sequelize 使用了 SERIAL: id: { ty
我的 PostgreSQL 表的 ID 类型为 bigserial ,这意味着它们是在插入行时生成的(因此,INSERT 语句中未提供 id 列的值)。我很难为 找到合适的值我的 XML 映射文件中
在 Postgres , 用 SERIAL 定义一列/ BIGSERIAL 具有三重效果,如 discussed here : 定义一个 int/bigint柱子。 创建一个序列对象来生成自动递增的数
我做了一些研究,但找不到我想要的确切答案。目前我有一个设置为串行的主键列“id”,但我想将其更改为 bigserial 以映射到 Java 层中的 Long。考虑到这是一个现有表,实现此目标的最佳方法
我是一名优秀的程序员,十分优秀!