6

SQLiteのTEXT列にデータベース制約を作成して、列の値を空の文字列""にすることを禁止できますか?

列をnullにしたいのですが、空の文字列は許可しません。

4

3 に答える 3

12

はい、できます

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
于 2012-04-29T09:57:09.737 に答える
3

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
于 2012-04-29T09:57:23.680 に答える
1

私の知る限り、SQLiteには同様の制約はありませんが、INSERTUPDATEで、空の文字列をNULLに自動的に変更するトリガーを使用して回避できる可能性があります。

于 2012-04-29T09:36:18.020 に答える