如果实际上没有插入记录,我想在sqlite表中插入一条记录.
假设它有三个字段pk,name,address
如果没有预先添加该名称,我想用名称插入新记录.
我们可以在一个Query中执行此操作.似乎有时与SQL查询略有不同.
是的,你可以用一个查询来做到这一点.
INSERT ON CONFLICT IGNORE应该帮助你:http://www.sqlite.org/lang_conflict.html
在名称上放置一个唯一键,如果名称已存在,则在尝试插入记录时会产生冲突.
默认值为ABORT,因此如果没有IGNORE,语句将返回错误.如果您不想这样,请使用IGNORE.
如果你不能UNIQUE INDEX
结合使用INSERT INTO
或者INSERT OR IGNORE INTO
,你可以写一个像这样的查询;
INSERT INTO table (column)
SELECT value
WHERE NOT EXISTS (SELECT 1
FROM table
WHERE column = value)