我正在处理一个有两个布尔列a和b的表。我想确保a永远不会等于b,但我似乎无法使用以下约束使其工作——而且谷歌似乎没有任何关于如何在 SQLite 中做这种事情的信息,但它可能是我措辞的方式:
create table foobar
(
a boolean,
b boolean,
Check(a<>b)
);
我也尝试过像这样定义表:
create table foobar
(
a boolean Check(a<>b),
b boolean Check(b<>a)
);
但似乎无论我做什么,当我在两列中插入相同的值时,SQLite 似乎都没有意识到我已经明确告诉过它——无论如何都试图——不要让b等于无论a是什么,反之亦然。
insert into foobar values (1,1);
select * from foobar;
a b
---------- ----------
1 1
有任何想法吗?我觉得我的总体思路是正确的,只是我遗漏了一些非常明显的东西。