我使用Google搜索並找到了此線程Slick 3.0: Delete rows from multiple tables in a transaction但是,解決方案說它不是一個好的解決方案。在光滑的查詢中從多個表中刪除行
我與我的代碼刪除多個表列如下
val deleteB = for {
aId <- TableA.filter(a => a.id === param).map(_.id)
bId <- TableB.filter(_.aId === aId)
} yield bId
val deleteC = for {
aId <- TableA.filter(a => a.id === param).map(_.id)
cId <- TableC.filter(_.aId === aId)
} yield cId
val deleteA = TableA.filter(a.Id === param)
val query = (deleteC.delete andThen deleteB.delete andThen deleteA.delete).transactionally
db.run(query)
但我不知道是否有寫這一個更好的方式。
我上面的方法的問題是,我想返回從TableA中刪除的行數,而不是從子表TableB和TableC中刪除的行的總和。
另外,在運行時,它抱怨加入刪除查詢。
我沒有看到有辦法的任何問題。它應該工作得很好..你在刪除記錄時是否面臨任何特定的問題? –
已更新的問題 –