Thank you, both 

typeof(handedness)='null'

and 

handedness is null

work. I see the problem and agree.

Roman
________________________________________
From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on 
behalf of Peter Aronson [pbaron...@att.net]
Sent: Friday, May 17, 2013 3:30 PM
To: General Discussion of SQLite Database
Subject: Re: [sqlite] table with check

The "OR NULL" doesn't work the way you think -- it's going to make the whole
expression null, which apparently check constraints treat the same as not
false.  What you want there is "OR typeof(handedness)='null'".

Peter

----- Original Message ----
> From: Roman Fleysher <roman.fleys...@einstein.yu.edu>
> To: General Discussion of SQLite Database <sqlite-users@sqlite.org>
> Sent: Fri, May 17, 2013 12:19:21 PM
> Subject: [sqlite] table with check
>
> Dear SQLiters,
>
> I am using sqlite shell, I believe version 3.7.16.2. I created a table with
>CHECK condition as:
>
> CREATE TABLE subject(
>   subjectID  INTEGER PRIMARY KEY,
>   handedness TEXT CHECK (handedness='Left' OR handedness='Right' OR NULL)
> );
>
> in hopes to be able to insert only "Right", "Left" or nothing "", i.e. fail
>otherwise. But:
>
> INSERT INTO subject (subjectID,"qqq");
>
> actually inserts qqq. Am I doing something wrong? I read manual that newer
>versions of sqlite should enforce CHECKs.
>
> Thank you,
>
> Roman
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to