--- Stefan Finzel <[EMAIL PROTECTED]> wrote:
> Yeah! I've missed the default option. But is this SQL standard? > > And it does not seem to work for me at all. I still can't differ > empty and NULL; > create table deftest (k integer primary key, > i integer default 'NULL', > s char default 'NULL'); > > sqlite> insert into deftest (i, s) values (NULL,''); > sqlite> select * from deftest; > 1|| > sqlite> NULL is what you get when "nothing was entered for that column". NULL isn't equal to anything, because it's "nothing". Clear as mud? ;) This statement: insert into deftest (i, s) values (NULL,''); puts NULL into column i, because you explicitly said that's what it should do. The default value is not used because you provided a value. You probably wanted this: insert into deftest (s) values (''); You should get something like this as a result: > sqlite> select * from deftest; > 1|NULL| > sqlite> Note: You put the string 'NULL' as the default, this is NOT the same as the value NULL. If you want to find rows with NULL do something like this: select * from deftest where i IS NULL; This: select * from deftest where i = NULL; Should not work --------------------------------- You a Gamer? If you're near Kansas City, ask me about the Recruits and Conquest conventions. --------------------------------- The Castles of Dereth Calendar: a tour of the art and architecture of Asheron's Call http://www.lulu.com/content/77264 __________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/