默认值(default指定)可以缺省使用,可以指定(DEFAULT)使用;
默认值常用在时间戳记录(now()、CURRENT_TIMESTAMP)和序列生成(nextval()、SERIAL);
一个列可以被分配一个默认值。当一个新行被创建且没有为某些列指定值时,这些列将会被它们相应的默认值填充。
一个数据操纵命令也可以显式地要求一个列被置为它的默认值,而不需要知道这个值到底是什么
如果没有显式指定默认值,则默认值是空值。
CREATE TABLE products (
product_no integer,
name text,
price numeric DEFAULT 9.99
);
INSERT INTO products (product_no, name) VALUES (1, 'Cheese');
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', DEFAULT);
常用的默认值:时间戳、序列
一个常见的例子是为一个timestamp列指定默认值为CURRENT_TIMESTAMP,这样它将得到行被插入时的时间。另一个常见的例子是为每一行生成一个“序列号” 。
CREATE TABLE products (
product_no integer DEFAULT nextval('products_product_no_seq'),
...
);
还有一种特别的速写:
CREATE TABLE products (
product_no SERIAL,
...
);