W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
一個列可以被分配一個默認值。當一個新行被創(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é)進一步討論。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: