You cannot perform SQL transaction using a Pool object directly (because that would imply keeping a connection open and not knowing when to return it back to the pool).
# S4 method for Pool
dbBegin(conn, ...)# S4 method for Pool
dbCommit(conn, ...)
# S4 method for Pool
dbRollback(conn, ...)
# S4 method for Pool
dbWithTransaction(conn, code)
See DBI::transactions()
.
If you must use these methods, fetch an actual connection first
with conn <- poolCheckout(pool)
-- then call the appropriate
DBI method on conn
. Since you're fetching a connection
from the pool yourself, you must also remember to return it
back to the pool when you're done: poolReturn(conn)
(otherwise, you have a leaked connection).
For simple transactions, consider using
poolWithTransaction()
instead,
which is safer since it does not require you to fetch and
release the connection yourself.
See DBI::transactions()
for the original
documentation.