1010.表默认值

默认值(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,

    ...

);

posted @ 2020-12-26 00:42  bufuzhou  阅读(56)  评论(0编辑  收藏  举报