3
讓我們假設一個表:PostgreSQL的「IS [NOT]不同於」運算符
CREATE TABLE foo (
id serial primary key
, range int4range NOT NULL
, barid integer references bar(id)
, baz whatever... NOT NULL
, EXCLUDE USING gist (range WITH &&, barid WITH =)
);
排除約束應該是不允許相同的「barid」值重疊的「範圍」值。但我希望它像其他值一樣對待「NULL」(所以不允許覆蓋範圍爲barid = NULL的不同記錄)。所以給出a = NULL和b = NULL,我想實現「a不是從b」類型的行爲,而不是「a = b」類型(如描述here)。這樣的操作員是否存在?目前我只能通過使用
EXCLUDE USING gist (range WITH &&, COALESCE(barid, -1) WITH =)