SQL插入其他更新不起作用

时间:2014-01-06 18:10:51

标签: mysql sql insert

我正在尝试编写一个sql语句,如果某个行id不存在则执行插入,否则更新。 所以我已阅读,下面应该可以工作,但它只是冻结我的SQLite数据库浏览器:

有什么想法吗?

INSERT INTO details
 (id, name, age)
VALUES
 (“1”, "mike", "22")
ON DUPLICATE KEY UPDATE
 name = “mike”
 age = “22”

1 个答案:

答案 0 :(得分:1)

很难找到关于这个主题的当前帖子,但似乎在sqlite中不存在“ON DUPLICATE KEY UPDATE”。你需要找到另一种方法来做到这一点。我发现的两种方法是

1)ON CONFLICT ... REPLACE http://www.sqlite.org/lang_conflict.html,它不会更新但会删除给定的行,然后使用新值插入

2)try / catch子句,如下所示:http://blog.client9.com/2007/11/21/sqlite3-and-on-duplicate-key-update.html以编程方式捕获冲突中的错误,并在发生错误时制定更新