Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite中的非空字符串约束_Sqlite_Constraints - Fatal编程技术网

SQLite中的非空字符串约束

SQLite中的非空字符串约束,sqlite,constraints,Sqlite,Constraints,我是否可以在SQLite中的文本列上创建一个数据库约束,禁止该列的值为空字符串“” 我想允许列为null,但不允许空字符串。据我所知,SQLite中不存在类似的约束,但您可以使用触发器解决问题,该触发器在插入和/或更新时自动将字符串更改为null。: sqlite>createtablefoo(条形文本,选中(条形“”); sqlite>插入到foo值中(NULL); sqlite>插入到foo值('bla'); sqlite>插入到foo值(“”); 错误:约束失败 您可以使用检查约束():

我是否可以在SQLite中的文本列上创建一个数据库约束,禁止该列的值为空字符串“”


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

据我所知,SQLite中不存在类似的约束,但您可以使用触发器解决问题,该触发器在插入和/或更新时自动将字符串更改为null。

:

sqlite>createtablefoo(条形文本,选中(条形“”);
sqlite>插入到foo值中(NULL);
sqlite>插入到foo值('bla');
sqlite>插入到foo值(“”);
错误:约束失败

您可以使用检查约束():

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
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