SQLite查询插入记录如果不存在

Tha*_*nka 25 sqlite

如果实际上没有插入记录,我想在sqlite表中插入一条记录.

假设它有三个字段pk,name,address

如果没有预先添加该名称,我想用名称插入新记录.

我们可以在一个Query中执行此操作.似乎有时与SQL查询略有不同.

Kon*_*rak 68

是的,你可以用一个查询来做到这一点.

INSERT ON CONFLICT IGNORE应该帮助你:http://www.sqlite.org/lang_conflict.html

在名称上放置一个唯一键,如果名称已存在,则在尝试插入记录时会产生冲突.

默认值为ABORT,因此如果没有IGNORE,语句将返回错误.如果您不想这样,请使用IGNORE.


SQL*_*ter 23

如果你不能UNIQUE INDEX结合使用INSERT INTO或者INSERT OR IGNORE INTO,你可以写一个像这样的查询;

INSERT INTO table (column)
SELECT value
WHERE NOT EXISTS (SELECT 1 
                  FROM table 
                  WHERE column = value)
Run Code Online (Sandbox Code Playgroud)