首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果SQLite中不存在该怎么办

如果SQLite中不存在该怎么办
EN

Stack Overflow用户
提问于 2009-02-10 04:14:49
回答 2查看 148.9K关注 0票数 83

我正在尝试将此行从MS SQL Server移植到SQLite

代码语言:javascript
复制
IF NOT EXISTS(SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received') 
    INSERT INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');

看起来SQLite不支持,如果不存在,或者至少我不能让它工作。我错过了什么简单的东西吗?有解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-10 05:30:35

这个怎么样?

代码语言:javascript
复制
INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received'

(未经测试,因为我没有SQLite...但是,this link非常具有描述性。)

此外,这也应该是可行的:

代码语言:javascript
复制
INSERT INTO EVENTTYPE (EventTypeName)
SELECT 'ANI Received'
WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
票数 124
EN

Stack Overflow用户

发布于 2014-04-23 13:04:00

如果要忽略现有值的插入,则表中必须有一个键字段。只需创建一个包含主键字段的表,如下所示:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS TblUsers (UserId INTEGER PRIMARY KEY, UserName varchar(100), ContactName varchar(100),Password varchar(100));

然后插入或替换/插入或忽略表上的查询,如下所示:

代码语言:javascript
复制
INSERT OR REPLACE INTO TblUsers (UserId, UserName, ContactName ,Password) VALUES('1','UserName','ContactName','Password');

它不会让它重新输入现有的主键值...这是您可以检查表中是否存在某个值的方法。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/531035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档