我正在尝试构建一个简单的应用程序,其中不允许用户插入重复值。我尝试将主键作为约束之一并且也是NOT NULL。但NOT NULL似乎不起作用。尽我所能但却没有解决它。请帮忙
((ID INTEGER NOT NULL PRIMARY KEY)";)
答案 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