SQLite中如何做不IF EXISTS
我试图从MS SQL Server移植到SQLite这一行
IF NOT EXISTS(SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received') INSERT INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');
看来,SQLite不支持IF NOT EXISTS,或者至less我不能使它工作。 我错过了一些简单的东西吗 有没有解决方法?
这个怎么样?
INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received'
(未经testing,因为我没有SQLite …但是这个链接是相当描述性的。)
另外,这也应该工作:
INSERT INTO EVENTTYPE (EventTypeName) SELECT 'ANI Received' WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
如果您想忽略现有值的插入,则表中必须有Key字段。 只需使用主键字段创build一个表就像:
CREATE TABLE IF NOT EXISTS TblUsers (UserId INTEGER PRIMARY KEY, UserName varchar(100), ContactName varchar(100),Password varchar(100));
然后在表格中插入或replace/插入或忽略查询如:
INSERT OR REPLACE INTO TblUsers (UserId, UserName, ContactName ,Password) VALUES('1','UserName','ContactName','Password');
它不会让它重新input现有的主键值…这是如何可以检查表中是否存在一个值。
您也可以使用KEY字段在表格上设置约束,并设置为“冲突”“忽略”
当发生适用的约束冲突时,IGNOREparsingalgorithm将跳过包含约束冲突的一行,并继续处理SQL语句的后续行,就像没有任何错误发生一样。 包含违反约束的行之前和之后的其他行正常插入或更新。 使用IGNORE冲突解决algorithm时不返回错误。
SQLite文档