可以為欄位指定預設值。當建立新的資料列,且沒有為某些欄位指定值時,這些欄位將會填入各自的預設值。資料操作命令也可以明確要求將欄位設定為其預設值,而不必知道該值是什麼。(關於資料操作命令的詳細資訊請參閱第 6 章。)
如果沒有明確宣告預設值,則預設值為空值。這通常是有意義的,因為空值可以被認為代表未知資料。
在表格定義中,預設值列在欄位資料類型之後。例如:
CREATE TABLE products (
product_no integer,
name text,
price numeric DEFAULT 9.99
);
預設值可以是一個運算式,每當插入預設值時(不是在建立表格時)都會對其進行評估。一個常見的例子是 timestamp
欄位的預設值為 CURRENT_TIMESTAMP
,以便將其設定為資料列插入的時間。另一個常見的例子是為每個資料列產生一個「“序號”」。在 PostgreSQL 中,這通常透過以下方式完成:
CREATE TABLE products (
product_no integer DEFAULT nextval('products_product_no_seq'),
...
);
其中 nextval()
函式從序列物件提供連續的值(請參閱第 9.17 節)。這種安排非常普遍,以至於有一個特殊的簡寫方式:
CREATE TABLE products (
product_no SERIAL,
...
);
SERIAL
簡寫在第 8.1.4 節中進一步討論。
如果您在文件中發現任何不正確、與特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。