I have a Play/Slick application where I need to run several plain sql queries multiple times (n) in a single transaction.
Here is the code for one iteration, i.e. when n = 1:
val query1 = sql"""insert into some_table_1 (date) values (NOW())""".asUpdate
val query2 = sql"""insert into some_table_2 (date) values (NOW())""".asUpdate
val query3 = sql"""insert into some_table_3 (date) values (NOW())""".asUpdate
val composedAction = for {
result1 <- query1
result2 <- query2
result3 <- query3
} yield result3
val result = db.run(composedAction.transactionally)
Now, I actually want to change the above composedAction so that it would iterate over the 3 queries n = 1,000 times in one transaction (i.e. I want the 3 * 1,000 = 3,000 queries to either all fail or all succeed).
How can I do that?