ios - SQLITE 中的条件 INSERT 或 UPDATE

标签 ios sqlite

<分区>

请就 SQLITE 中的 INSERT 或 UPDATE 提供一些建议

我正在使用这个代码
NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO downloadedBook(bookID, courseID, bookName, bookPath, bookVersion, pageAmount, price, episode) VALUES (\"%@\",\"%@\",\"%@\",\"%@\", %f, %d,%f,\"%@\")",bookID,courseID,bookName,bookPath,bookVersion,pageAmount,price,episode];

用于插入,

和这段代码

NSString *updateSQL = [NSString stringWithFormat: @"UPDATE downloadedBook SET bookID =\"%@\",courseID =\"%@\", bookName =\"%@\", bookPath =\"%@\", bookVersion = %f, pageAmount = %d, price = %f,episode =\"%@\"WHERE bookID =\"%@\""bookID,courseID,bookName,bookPath,bookVersion, pageAmount , 价格, 剧集,bookID];

更新。

它工作正常。现在,我如何在执行这些操作时使用 if 条件?例如,我想检查“如果我有这个,数据将更新”请指教。

我该怎么做请指导我。

最佳答案

  1. 确保表有一些唯一约束,例如 bookID INTEGER PRIMARY KEY

  2. 使用 INSERT OR REPLACE INTO ... 和您拥有的插入语法。如果插入会导致违反约束(例如 bookID 已存在),则首先删除冲突的行,然后插入数据。

还可以考虑对文字使用准备好的语句和 ? 占位符,以防止 SQL 语法问题和注入(inject)攻击,并提高性能。

关于ios - SQLITE 中的条件 INSERT 或 UPDATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21108473/

上一篇:ios - 复制对象的可变数组比较

下一篇:ios - 在应用商店提交 iPhone 应用,然后决定提交 iPad 应用?

相关文章:

ios - VM Tracker 交换内存

ios - SQLite 保存和加载图像 iOS

ios - 我们可以在iOS应用中同时使用核心数据和SQlite吗

java - 尝试更新Android中sqlite最后一条记录中的某一列

ios - 在 'databaseName' 类型的对象上找不到属性 'AppDelegate *'

ios - 如何在动画对象上启用用户交互?

ios - SceneKit 编辑器为节点设置自定义类

iphone - MPMoviePlayerController 立即结束

ios - 如何创建一个 UIBackgroundTask 以在应用程序处于后台时发送数据?

java - Sqlite 查询检查 - 小于和大于