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