NOT NULL不能在SQLite android中工作

时间:2015-03-08 11:13:11

标签: android database sqlite android-sqlite

我正在尝试构建一个简单的应用程序,其中不允许用户插入重复值。我尝试将主键作为约束之一并且也是NOT NULL。但NOT NULL似乎不起作用。尽我所能但却没有解决它。请帮忙

 ((ID INTEGER NOT NULL PRIMARY KEY)";) 

3 个答案:

答案 0 :(得分:0)

请尝试以下格式:

sqlite> CREATE TABLE DEPARTMENT(
   ID INT PRIMARY KEY      NOT NULL,
   DEPT           CHAR(50) NOT NULL,
   EMP_ID         INT      NOT NULL
);

答案 1 :(得分:0)

SQLite允许InOutViewController列中的NULL,除非某列为PRIMARY KEY列或该表为INTEGER PRIMARY KEY表或列定义为WITHOUT ROWID列。

例如:

NOT NULL

因为此列被声明为CREATE TABLE suppliers( supplier_id INTEGER PRIMARY KEY, name TEXT NOT NULL ); ,所以它将不接受INTEGER PRIMARY KEY值。

答案 2 :(得分:-1)

尝试在相应的字段上使用UNIQUE约束。

  

UNIQUE约束类似于PRIMARY KEY约束,但单个表可能具有任意数量的UNIQUE约束。对于表上的每个UNIQUE约束,每行必须包含由UNIQUE约束标识的列中的唯一值组合。出于UNIQUE约束的目的,NULL值被认为与所有其他值不同,包括其他NULL。


编辑:
根据您的附加信息,您可以使用CHECK约束来防止空白值。

sqlite> create table foo (bar TEXT, CHECK(bar <> ''));

有关详细信息,请参阅此答案:Not empty string constraint in SQLite