scala - 撰写 "Insert...Select...Where"查询

标签 scala slick

我正在尝试使用 Slick 3.0 编写查询,但似乎无法弄清楚。

等效的 SQL 是“insert into SavedMail select * from Inbox where Inbox.id = 1”

val mailTable = TableQuery[Tables.Inbox]
val savedMailTable = TableQuery[Tables.Savedmail]
val select = mailTable.filter(_.id === msgId)

我现在被困在如何进行插入上。帮助表示赞赏。

最佳答案

这是我想出的解决方案。也许有一种不使用 forceInsertQuery 的方法,但是,嘿,这是有效的。

val mailTable = TableQuery[Tables.Inbox]
val savedMailTable = TableQuery[Tables.Savedmail]

val select = mailTable.filter(_.id === msgId).map(c => (c.id, c.touserid, c.fromuserid, c.mailtype, c.subject, c.msg, c.postdate))
val q = savedMailTable.map(c => (c.id, c.touserid, c.fromuserid, c.mailtype, c.subject, c.msg, c.postdate)) forceInsertQuery select

关于scala - 撰写 "Insert...Select...Where"查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31347462/

相关文章:

scala - 具有类型参数的案例类的元组方法

scala - 如何将 hiveContext 作为参数传递给函数 spark scala

scala - 使用batchsize并写入RDBMS(ORACLE、MsSQL等)时,如何在每个批处理中进行spark提交?

scala - 光滑的多个连接

scala - Slick - 使用动态 sortBy 编译

scala - 如何在 Scala Slick 中运行补丁/部分数据库更新?

scala - spark cassandra 连接器和 SBT 的编译错误

scala - 告诉 SBT 不要检查 SNAPSHOT 版本的更改

scala - 无法使用 Slick-play 解析符号(foreach、list、...)

scala - Slick 写一个简单的建表函数