0
我正在一張桌子上,我有兩個布爾列a和b。我想確保a永遠不會等於b,但我似乎無法使用以下約束來使其工作 - 而且Google似乎沒有任何關於如何做這種事情的內容SQLite的,但它可能是我是措辭事情的方式:限制一個表,如果列A是True,那麼列B必須是False,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
任何想法?我覺得我有正確的想法,只是我錯過了一些非常明顯的東西。
稍微偏離主題:但不能總是推斷b的價值,從?因此,這兩個領域有什麼意義?你有意創造一個可能的失敗點。讓你的生活更簡單,避免多餘的領域跳過檢查。 –
@丹尼爾哦,**嗯**,好點。看,我知道**有一些我失蹤了!謝謝。 :) –
我仍然想知道答案,因爲這兩個示例中的語法對我來說似乎都是正確的。 –