W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
一個(gè)列可以被分配一個(gè)默認(rèn)值。當(dāng)一個(gè)新行被創(chuàng)建且沒(méi)有為某些列指定值時(shí),這些列將會(huì)被它們相應(yīng)的默認(rèn)值填充。一個(gè)數(shù)據(jù)操縱命令也可以顯式地要求一個(gè)列被置為它的默認(rèn)值,而不需要知道這個(gè)值到底是什么(數(shù)據(jù)操縱命令詳見(jiàn)第 6 章)。
如果沒(méi)有顯式指定默認(rèn)值,則默認(rèn)值是空值。這是合理的,因?yàn)榭罩当硎疚粗獢?shù)據(jù)。
在一個(gè)表定義中,默認(rèn)值被列在列的數(shù)據(jù)類(lèi)型之后。例如:
CREATE TABLE products (
product_no integer,
name text,
price numeric DEFAULT 9.99
);
默認(rèn)值可以是一個(gè)表達(dá)式,它將在任何需要插入默認(rèn)值的時(shí)候被實(shí)時(shí)計(jì)算(不是表創(chuàng)建時(shí))。一個(gè)常見(jiàn)的例子是為一個(gè)timestamp
列指定默認(rèn)值為CURRENT_TIMESTAMP
,這樣它將得到行被插入時(shí)的時(shí)間。另一個(gè)常見(jiàn)的例子是為每一行生成一個(gè)“序列號(hào)” 。這在PostgreSQL可以按照如下方式實(shí)現(xiàn):
CREATE TABLE products (
product_no integer DEFAULT nextval('products_product_no_seq'),
...
);
這里nextval()
函數(shù)從一個(gè)序列對(duì)象第 9.17 節(jié))。還有一種特別的速寫(xiě):
CREATE TABLE products (
product_no SERIAL,
...
);
SERIAL
速寫(xiě)將在第 8.1.4 節(jié)進(jìn)一步討論。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: