カスタムドメインにNULL値を受け入れる方法がわからないようです。たわごとやくすくす笑いのために、私はそれを多くの異なる方法で試したことに注意してください:
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)
もっと面白いことに、ドキュメントは言う
ヌル
このドメインの値はnullにすることができます。これがデフォルトです。
この句は、非標準のSQLデータベースとの互換性のみを目的としています。新しいアプリケーションでの使用はお勧めしません。
句がなくても、それはまだ言いNOT NULL
ます。
$ psql --version
psql (PostgreSQL) 9.1.1
contains support for command-line editing