关于scala:撰写”插入…选择…在哪里”查询

Compose “Insert…Select…Where” query

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

等效的SQL是"插入SavedMail中,从Inbox选择*,其中Inbox.id = 1 "

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

我现在仍然无法进行插入操作。感谢帮助。


这是我想出的一个解决方案。也许有一种不使用forceInsertQuery的方法,但是,这行得通。

1
2
3
4
5
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