我正在制作一个表格,其中有两个布尔列 a 和 b 。我想确保 a 永远不会等于 b ,但我似乎无法使用以下约束使其工作 - 而google似乎没有关于如何在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
有什么想法吗?我觉得我有一个正确的总体思路,除了我遗漏了一些非常明显的东西。
答案 0 :(得分:0)
省略 a ;将 b 设置为false,其中 a 为真, b 为true,其中 a 为false。 ..至少,我认为那是行得通的。