?
Ce document utilise Manuel du site Web PHP chinois Libérer
一個(gè)字段可以賦予缺省值。如果新創(chuàng)建了一個(gè)數(shù)據(jù)行,而有些字段的數(shù)值沒有聲明, 那么這些字段將被填充為它們各自的缺省值。一條數(shù)據(jù)修改命令也可以明確地要求 把一個(gè)字段設(shè)置為它的缺省值,而不用事先知道這個(gè)缺省值是什么。有關(guān)數(shù)據(jù)操作 的命令在Chapter 6。
如果沒有明確聲明缺省值,那么缺省值是 NULL。這么做通常是合理的,因?yàn)镹ULL表示"未知"。
在一個(gè)表定義里,缺省值是在字段數(shù)據(jù)類型后面列出的。比如:
CREATE TABLE products ( product_no integer, name text, price numeric DEFAULT 9.99 );
缺省值可以是一個(gè)表達(dá)式,它會在插入缺省值的時(shí)候計(jì)算(不是 在創(chuàng)建表的時(shí)候)。一個(gè)常見的例子是一個(gè)timestamp字段可能有缺省值 CURRENT_TIMESTAMP ,它表示插入行的時(shí)刻。另外一個(gè)常見的例子是為 每一行生成一個(gè)""serial number""。在PostgreSQL里, 通常是用類似下面這樣的方法生成的:
CREATE TABLE products ( product_no integer DEFAULT nextval('products_product_no_seq'), ... );
這里的nextval()從一個(gè)序列對象(參閱Section 9.15)提供后繼的數(shù)值。這種做法非常普遍, 以至于我們有一個(gè)專門的縮寫用于此目的:
CREATE TABLE products ( product_no SERIAL, ... );
SERIAL 縮寫在Section 8.1.4里有進(jìn)一步描述。