首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何巧妙地进行插入忽略查询?

问如何巧妙地进行插入忽略查询?
EN

Stack Overflow用户
提问于 2013-02-13 19:29:17
回答 1查看 2K关注 0票数 9

由于我在我的项目中使用的主题数据的性质,在输入集中经常会遇到重复记录(有时它意味着同一输入集中的重复记录,这可以通过预插入筛选轻松处理,但通常输入集可以包含数据库中已经存在的记录的副本)。

MySQL和SQLite INSERT IGNORE特性在处理这方面有很大帮助。

所以我要问的问题是:

  1. 当将数据插入到INSERT IGNORE或SQLite数据库时,如何使Slick使用MySQL而不是裸的SQLite?
  2. 在不支持INSERT IGNORE功能的MS中使用Slick时,最理想的方法是什么?
EN

回答 1

Stack Overflow用户

发布于 2013-02-18 12:05:46

我没有滑头的经验。从源代码中我推断,为了使Slick能够使用INSERT IGNORE,您需要执行几个步骤:

  • 扩展所需数据库的驱动程序。
  • 重写通过InsertBuilder创建的默认def createInsertBuilder(node: Node): InsertBuilder。扩展它并添加一个类似于buildInsert方法的专门方法。
  • 重写通过InsertInvoker创建的默认def createCountingInsertInvoker[T, U](u: ShapedValue[T, U])。扩展它并添加insertIgnore,它应该类似于FullInsertInvoker中的def insert[TT](query: Query[TT, U])(implicit session: Session): RetQuery

至于你的第二个问题。不受支持的INSERT IGNORE解决方案的实现依赖于数据库,谷歌将帮助您找到不同的实现。由于上面添加INSERT IGNORE的方法与驱动程序无关,所以可以使用相同的结构为任何数据库添加功能。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14861467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档