1

我在serial4类型的表中定义了一个属性,因此当我插入新行时,该属性会自动递增。

我曾经这样做过:

myTable (id : serial4, name : varchar(25), whatever : whatever, ...);

当我想插入一个新条目时:

insert into myTable (name, whatever, ...) values ('foo', ...);

(我只是去掉关联列表中的 id 属性)。

现在如果我的表有大量的属性,关联列表写起来很累。

我只想写:

insert into myTable values (...);

但是如果 myTable 的第一个属性是serial4 id,我应该在值列表中写什么?

insert into myTable values (?, 'foo', ...);

让 id 从最后插入的值增加 +1 ?

4

1 回答 1

2

使用关键词DEFAULT

insert into myTable values (DEFAULT, 'foo', ...);

serial伪数据类型(同义词:)serial4只是integer从附加的 中检索其默认值的列的符号方便SEQUENCE。通过使用DEFAULT关键字,序列中的下一个值像任何其他默认值一样被插入。

手册中的详细信息。

于 2012-03-26T15:12:28.597 回答