示例表 table t_ex; c1 | c2 ----+---- 2 | B 4 | C 6 | A 2 | C 4 | B 6 | B 2 | A 4 | B 6 | C 2 | C 以下SQL语句有序地返回"c1"列中唯一值: select distinct on(c1) * from abce; 对于c2列,会根据c1的唯一性,从表中找到的第一个值. postgres=# select distinct on(c1) * from abce; c1 | c2 ----+----
用一句话来总结这种改进就是: 支持唯一性约束和索引将null值视为相同的值.之前是将null值索引成不同的值,现在可以通过使用unique nulls not distinct创建约束,将null值视为相同的值. 两种unique风格 创建示例表: CREATE TABLE null_old_style ( id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, val1 TEXT NOT NULL, val2 TEXT NULL, CON