教学文章
Technology Exchange
热门课程
400电话

免费咨询热线
400-090-9964

教学文章

PostgreSQL教程-数据定义-默认值

时间:2021-10-09 来源:

5.2. 默认值

一个列可以被分配一个默认值。当一个新行被创建且没有为某些列指定值时,这些列将会被它们相应的默认值填充。一个数据操纵命令也可以显式地要求一个列被置为它的默认值,而不需要知道这个值到底是什么(数据操纵命令详见第 6 章)。

如果没有显式指定默认值,则默认值是空值。这是合理的,因为空值表示未知数据。

在一个表定义中,默认值被列在列的数据类型之后。例如:

CREATE TABLE products (

product_no integer,

name text,

price numeric DEFAULT 9.99

);

默认值可以是一个表达式,它将在任何需要插入默认值的时候被实时计算(不是表创建时)。一个常见的例子是为一个timestamp列指定默认值为CURRENT_TIMESTAMP,这样它将得到行被插入时的时间。另一个常见的例子是为每一行生成一个“序列号” 。这在PostgreSQL可以按照如下方式实现:

CREATE TABLE products (

product_no integer DEFAULT nextval('products_product_no_seq'),

...

);

这里nextval()函数从一个序列对象第 9.16 节)。还有一种特别的速写:

CREATE TABLE products (

product_no SERIAL,

...

);

SERIAL速写将在第 8.1.4 节进一步讨论。

版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com www.cuug.net

电话:010-59426307 010-59426319 邮政编码:100089

地址:北京市海淀区北清路164号28-38号院