我做了一个约束,将列completed
的列标记为true
其他列的某些列必须具有值。基于单列未约束的列的约束
但由于某种原因,当我将completed
标记为true
时,当我离开指定的列空白时,约束不会发生抱怨。我也故意插入NULL指定的列,仍然没有约束。
任何想法?
CREATE TABLE info (
id bigserial PRIMARY KEY,
created_at timestamptz default current_timestamp,
posted_by text REFERENCES users ON UPDATE CASCADE ON DELETE CASCADE,
title character varying(31),
lat numeric,
lng numeric,
contact_email text,
cost money,
description text,
active boolean DEFAULT false,
activated_date date,
deactivated_date date,
completed boolean DEFAULT false,
images jsonb,
CONSTRAINT columns_null_check CHECK (
(completed = true
AND posted_by != NULL
AND title != NULL
AND lat != NULL
AND lng != NULL
AND contact_email != NULL
AND cost != NULL
AND description != NULL
AND images != NULL) OR completed = false)
);
尝试使用测试'IS NOT NULL'但不是'= NULL'! –