我似乎无法弄清楚如何让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