您正在努力与现有的 和 实现 。 这是一个比较三个涉及的RDBS的物理行存储格式的演示。
由于Oracle根本不实现NULL
行存储中的值,因此NULL
无论如何也无法分辨出空字符串与字符串之间的区别。因此,对于 特殊的用例,使用空字符串(''
)代替NULL
Postgres中的值是否明智?
将唯一约束中包含的列定义为NOT NULL DEFAULT ''
,已解决的问题:
CREATE TABLE example (
example_id serial PRIMARY KEY
, field1 text NOT NULL DEFAULT ''
, field2 text NOT NULL DEFAULT ''
, field3 text NOT NULL DEFAULT ''
, field4 text NOT NULL DEFAULT ''
, field5 text NOT NULL DEFAULT ''
, CONSTRAINT example_index UNIQUE (field1, field2, field3, field4, field5)
);