由于我在我的项目中使用的主题数据的性质,在输入集中经常会遇到重复记录(有时它意味着同一输入集中的重复记录,这可以通过预插入筛选轻松处理,但通常输入集可以包含数据库中已经存在的记录的副本)。
MySQL和SQLite INSERT IGNORE特性在处理这方面有很大帮助。
所以我要问的问题是:
INSERT IGNORE或SQLite数据库时,如何使Slick使用MySQL而不是裸的SQLite?INSERT IGNORE功能的MS中使用Slick时,最理想的方法是什么?发布于 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的方法与驱动程序无关,所以可以使用相同的结构为任何数据库添加功能。
https://stackoverflow.com/questions/14861467
复制相似问题