空值与行类型之间是否存在任何差异,其中所有列都为空? Postgres查询似乎能够区分它们(显示空列而不是空白),我想知道是否有任何我应该知道的事情。例如具有全空列的空复合类型和复合类型之间的区别
CREATE TYPE node AS (
rank integer
, id integer
);
CREATE TABLE hierarchy (
node node
);
INSERT INTO hierarchy (node) VALUES (null);
INSERT INTO hierarchy (node) VALUES ((null, null));
SELECT *, node IS NULL AS check_null FROM hierarchy;
node | check_null ------+------------ | t (,) | t
检查您的数据库设计,因为所有列为NULL的行在关系模型中没有意义。您始终需要一个唯一的主键来标识表中的每一行。一行可以有一些NULL字段,但行的主键永远不应该是NULL。 – aicastell
@aicastell将问题中的rowtype读取为复合类型。 –
你的问题有许多语法错误(和语义错误,f.ex.节点既是复合类型又是表名)。你确定你跑了吗? http://rextester.com/ZMOO91035 – pozs