我似乎無法弄清楚如何讓custom domain接受NULL值。請注意,對於媽和笑聲我已經嘗試了很多不同的方法:如何創建一個接受NULL的DOMAIN?
DROP SCHEMA census CASCADE;
CREATE SCHEMA census;
-- FIRST FOUR METHODS: NULL before CHECK, in CHECK, and NULL after CHECK
CREATE DOMAIN census.sex AS text NULL CHECK (VALUE IN ('M', 'F', 'NULL') OR VALUE IS NULL) NULL;
CREATE TABLE census.names (
name text
, freq int
, cumfreq float
, rank float
, is_last bool
, sex census.sex NULL -- fourth way
, PRIMARY KEY (is_last, sex, name)
);
但是,仍然沒有運氣...
# \d census.names;
Table "census.names"
Column | Type | Modifiers
---------+------------------+-----------
name | text | not null
freq | integer |
cumfreq | double precision |
rank | double precision |
is_last | boolean | not null
sex | census.sex | not null
Indexes:
"names_pkey" PRIMARY KEY, btree (is_last, sex, name)
更有趣的是,the docs說
NULL
該域的值允許爲空。這是默認設置。
本節僅用於與非標準SQL 數據庫的兼容性。新應用中不鼓勵使用它。
沒有條款,它仍然說NOT NULL
。
$ psql --version
psql (PostgreSQL) 9.1.1
contains support for command-line editing
對,我是在制定相同的答案的過程。 – 2012-01-13 17:22:57
發表評論upvote - 我只是不希望任何人浪費時間編寫答案,如果我已經擁有它。 – 2012-01-13 17:26:35
我不是抱怨,你做對了。只是想確認。 – 2012-01-13 18:29:40