我的数据库使用PostgreSQL。一个表使用serial
自动增量宏。如果我想在表中插入一条记录,我是否还需要指定该值,或者它会自动为我分配?
CREATE TABLE dataset
(
id serial NOT NULL,
age integer NOT NULL,
name character varying(32) NOT NULL,
description text NOT NULL DEFAULT ''::text
CONSTRAINT dataset_pkey PRIMARY KEY (id)
);
5条答案
按热度按时间3lxsmp7m1#
使用
DEFAULT
关键字或从INSERT
列表中省略列:baubqpgj2#
如果你创建了一个带有序列列的表,那么如果你在向表中插入数据时忽略了序列列,PostgreSQL将自动使用序列并保持顺序。
示例:
6psbrbz93#
这些查询对我有用:
igetnqfo4#
在这种情况下,插入多行对我不起作用:
因为我错误地将gen_id函数标记为IMMUTABLE。
插入查询被优化为只调用该函数一次而不是10次。哎呀...
xxslljrj5#
例如,创建**“person”表**,“id”为serial,**“name”**如下所示:
然后,可以对serial的**“id”使用
DEFAULT
,插入不带列(字段)名**的行,如下图所示: