原则:先检测该数据库的指定表中,是否已经存在我们要插入的这条数据记录,若已经存在,则不插入这条数据记录(即忽略此次插入操作),若尚不存在,才插入这条数据记录(即才执行此次插入操作)

我们这里使用的是FMDB框架

方法一:

FMDatabase *collectionBookDB = [FavoriteBooksDataBase favoriteBooksDataBase];

NSString *sqlObjectiveString = [NSString stringWithFormat:@"INSERT INTO t_favoriteBooks (bookName, author, publisher, publishmentDate, briefIntroduction, bookImageURL, bookIdentifier) SELECT '%@','%@','%@','%@','%@','%@', %d WHERE NOT EXISTS (SELECT * FROM t_favoriteBooks WHERE bookIdentifier=%d)", book.bookName, book.author, book.publisher, book.publishmentDate, book.briefIntroduction, book.bookImageURL, book.bookIdentifier, book.bookIdentifier];

BOOL collectionBookResult = [collectionBookDB executeUpdate:sqlObjectiveString];

方法二:

FMDatabase *saveDB = [FavoriteBooksDataBase favoriteBooksDataBase];

// 先查询数据库的表中有没有这个标识的书

FMResultSet *resultSet = [saveDB executeQuery:[NSString stringWithFormat:@"SELECT * FROM t_favoriteBooks WHERE bookIdentifier = %d;", book.bookIdentifier]];

if ([resultSet next]) { // 表中已经有这个标识的书了

return NO; // 那就直接返回,即不执行插入操作

}

// 若表中还没有这个标识的书,就执行这次插入操作

BOOL result = [saveDB executeUpdateWithFormat:@"INSERT INTO t_favoriteBooks (bookName, author, publisher, publishmentDate, briefIntroduction, bookImageURL, bookIdentifier) VALUES (%@,%@,%@,%@,%@,%@,%d) ", book.bookName, book.author, book.publisher, book.publishmentDate, book.briefIntroduction, book.bookImageURL, book.bookIdentifier]

if (!result) {

NSLog(@"该条数据记录尚不存在于该表中,但插入操作失败");

return NO;

}

return result;

最新文章

  1. 初识JavaScript
  2. POJ 3155 Hard Life(最大密度子图)
  3. ASP.NET MVC怎样引用你的model
  4. 手机Fildder抓包_监控应用请求
  5. BZOJ4527 : K-D-Sequence
  6. 浅谈c语言程序为什么需要内存 栈又是什么?
  7. 【Android】 -- 使用UncaughtExceptionHandler捕捉全局异常
  8. Linux核心设计依据(七)系统调用
  9. 关于Java中继承多接口同名方法的问题
  10. mysql安装报错
  11. SQL数据查询语句(一)
  12. EF Core 使用编译查询提高性能
  13. Java 8 Documentation Download
  14. keras03 Aotuencoder 非监督学习 第一个自编码程序
  15. springboot项目如何打包成war包
  16. FAT32文件格式示例解析
  17. cdn是否缓存了网站内容,如何查看
  18. php的foreach中使用取地址符,注意释放
  19. Java技术——你真的了解String类的intern()方法吗
  20. Ubuntu16.04阿里云源

热门文章

  1. hibernate.hbm2ddl.auto=update不能自动生成表结构
  2. 博客更换至 www.zhaoch.top
  3. CodeForces - 776C(前缀和+思维)
  4. Mongo DB Java操作
  5. 【转】从零开始学习Skynet_examples研究
  6. FastJson 序列化与反序列化一些说明
  7. gitolite 丢失管理密钥/访问权限 解决办法
  8. php redis和java混用问题
  9. numpy切片和布尔型索引
  10. Internet Secure