我想在JSONB列上有一个CHECK约束,它只允许非空的JSON对象(只有{}
具有属性,没有其他值,如[]
或JSON基元。
我只想检查“root”值,这些对象中存储的内容无关紧要。
我该怎么做?
答案 0 :(得分:3)
"Fak'n & \" account/\\home"
答案 1 :(得分:1)
就像任何检查约束一样,使用<>运营商。来自manual:
表9-1中显示的标准比较运算符可用 jsonb,但不是json。
表9.1显示了不等于运算符<>:
create table foo(
bar jsonb,
constraint baz check(bar <> '{}'::jsonb)
);
insert into foo(bar) values('{"foo": 1}'::jsonb);
insert into foo(bar) values('{}'::jsonb); -- fails