PostgreSQL 默認值

2021-08-26 09:52 更新

一個列可以被分配一個默認值。當一個新行被創(chuàng)建且沒有為某些列指定值時,這些列將會被它們相應的默認值填充。一個數(shù)據(jù)操縱命令也可以顯式地要求一個列被置為它的默認值,而不需要知道這個值到底是什么(數(shù)據(jù)操縱命令詳見第 6 章)。

如果沒有顯式指定默認值,則默認值是空值。這是合理的,因為空值表示未知數(shù)據(jù)。

在一個表定義中,默認值被列在列的數(shù)據(jù)類型之后。例如:

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric DEFAULT 9.99
);

默認值可以是一個表達式,它將在任何需要插入默認值的時候被實時計算(是表創(chuàng)建時)。一個常見的例子是為一個timestamp列指定默認值為CURRENT_TIMESTAMP,這樣它將得到行被插入時的時間。另一個常見的例子是為每一行生成一個序列號 。這在PostgreSQL可以按照如下方式實現(xiàn):

CREATE TABLE products (
    product_no integer DEFAULT nextval('products_product_no_seq'),
    ...
);

這里nextval()函數(shù)從一個序列對象第 9.17 節(jié))。還有一種特別的速寫:

CREATE TABLE products (
    product_no SERIAL,
    ...
);

SERIAL速寫將在第 8.1.4 節(jié)進一步討論。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號