SQLite中不是空字符串约束

时间:2012-04-29 09:28:09

标签: sqlite constraints

我是否可以在 SQLite 中的 TEXT 列上创建数据库约束,禁止将列的值设置为空字符串“”?< / p>

我想允许列 null ,但不允许空字符串。

3 个答案:

答案 0 :(得分:8)

Yes you can

sqlite> create table foo (bar TEXT, CHECK(bar <> ''));
sqlite> insert into foo values (NULL);
sqlite> insert into foo values ('bla');
sqlite> insert into foo values ('');
Error: constraint failed

答案 1 :(得分:2)

您可以使用CHECK约束(http://www.sqlite.org/lang_createtable.html):

SQLite version 3.5.9
Enter ".help" for instructions
sqlite> create table example(col, CHECK (col is null or length(col) > 0));
sqlite> insert into example values ('');
SQL error: constraint failed
sqlite> insert into example values (null);
sqlite> insert into example values ('sample');
sqlite> .nullvalue NULL
sqlite> select col from example;
NULL
sample

答案 2 :(得分:1)

据我所知,在SQLite中不存在类似的约束,但也许您可以使用 INSERT 和/或 UPDATE中的触发器进行解决在NULL中自动更改字符串为空。