4
我想更新行的列,如果行已经存在,但如果它不存在,那么我想插入一个新行。如何更新或插入SQLite.swift
相关问题
这种类型的问题是流行的SQL一般
- UPDATE if exists else INSERT in SQL Server 2008
- Solutions for INSERT OR UPDATE on SQL Server
- Insert into a MySQL table or update if exists
和SQLite特别
- INSERT IF NOT EXISTS ELSE UPDATE?
- SQLite - UPSERT *not* INSERT or REPLACE
- SQLite UPSERT/UPDATE OR INSERT
- SQL: How to update or insert if doesn't exist?
寻找SQLite.swift实施
我试图通过使用SQLite.swift包装为iOS开发节省开发时间。我选择了这个框架,因为它是recommended on raywenderlich.com。我认为有一个更新或插入语法的例子会很有用。
战略
在this answer,萨姆藏红花说:
如果你通常做更新,我会..
- 开始事务
- 执行更新
- 检查行数
- 如果是0做插入
- 提交
如果你是一般是在做刀片我会
- 开始事务
- 尝试插入
- 检查主键冲突错误
- 如果我们得到一个错误做更新
- 提交
这样你可以避免选择和你在 Sqlite上交易声音。
这对我有意义,所以在我的回答下面我提供了一个“通常做更新”的例子。