>From the documentation http://sqlite.org/lang_altertable.html

The ADD COLUMN syntax is used to add a new column to an existing table.
...
    * If a NOT NULL constraint is specified, then the column must have a
default value other than NULL.

Regards,

Noah

-----Original Message-----
From: sqlite-users-boun...@sqlite.org
[mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Alex Ousherovitch
Sent: Monday, March 16, 2009 11:48 AM
To: sqlite-users@sqlite.org
Subject: Re: [sqlite] Adding a NOT NULL column fails on empty table

We want this operation to work when it can and fail when it has to. In
some cases the user will specify NOT NULL and in others they won't. Of
course we can drop and recreate the table but then we have to examine
the request to see if the field has the NOT NULL constraint and then
test to see if there is data in the table. It's not terribly difficult
but it leads to a more complicated set of code paths than just giving it
a shot and relying on SQLite to handle it correctly.

 

> Igor Tandetnik itandetnik at mvps.org
<mailto:sqlite-users%40sqlite.org?Subject=%5Bsqlite%5D%20Adding%20a%20NO
T%20NULL%20column%20fails%20on%20empty%20table&In-Reply-To=> 
> Mon Mar 16 18:23:40 GMT 2009 

 

> Can't you just drop the table and create a new one? As the table is 

> empty, you won't be losing any data.

 

> Igor Tandetnik 

 

 

 

 

From: Alex Ousherovitch 
Sent: Monday, March 16, 2009 11:13 AM
To: 'sqlite-users@sqlite.org'
Subject: Adding a NOT NULL column fails on empty table

 

Hello list,

 

The attempts to add a NOT NULL column on an empty  table

ALTER TABLE tbl_name ADD COLUMN col_name blob NOT NULL

 fail with the following error message:

Cannot add a NOT NULL column with default value NULL

 

As I understand, many other systems allow it when the table has no
records. 

Is it a bug or a feature in SQLite?

 

Thank you,

Alex

 

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



CONFIDENTIALITY NOTICE: 
This message may contain confidential and/or privileged information. If you are 
not the addressee or authorized to receive this for the addressee, you must not 
use, copy, disclose, or take any action based on this message or any 
information herein. If you have received this message in error, please advise 
the sender immediately by reply e-mail and delete this message. Thank you for 
your cooperation.


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

Reply via email to