如何在sqlite3中执行原子INSERT IF NOT EXISTS等效?

时间:2010-10-20 22:56:54

标签: sqlite

问题确实说明了。

我有一个表,如果它不存在,我想插入一行。 或者我应该只进行插入,如果违反了键约束,那么忽略它?

2 个答案:

答案 0 :(得分:2)

使用INSERT或IGNORE:http://www.sqlite.org/lang_insert.html

答案 1 :(得分:0)

使用在INSERT之前触发的触发器并丢弃重复的行,类似于...的行

CREATE TRIGGER trigger_name
BEFORE INSERT on your_table
FOR EACH ROW WHEN EXISTS (SELECT * FROM your_table WHERE id = NEW.id)
BEGIN
  SELECT RAISE(IGNORE);
END;