transactions {RSQLite} | R Documentation |
By default, SQLite is in auto-commit mode. dbBegin
starts
a SQLite transaction and turns auto-commit off. dbCommit
and
dbRollback
commit and rollback the transaction, respectively and turn
auto-commit on.
## S4 method for signature 'SQLiteConnection' dbBegin(conn, name = NULL) ## S4 method for signature 'SQLiteConnection' dbCommit(conn, name = NULL) ## S4 method for signature 'SQLiteConnection' dbRollback(conn, name = NULL)
conn |
a |
name |
Supply a name to use a named savepoint. This allows you to nest multiple transaction |
A boolean, indicating success or failure.
con <- dbConnect(SQLite(), ":memory:") dbWriteTable(con, "arrests", datasets::USArrests) dbGetQuery(con, "select count(*) from arrests") dbBegin(con) rs <- dbSendQuery(con, "DELETE from arrests WHERE Murder > 1") dbGetRowsAffected(rs) dbClearResult(rs) dbGetQuery(con, "select count(*) from arrests") dbRollback(con) dbGetQuery(con, "select count(*) from arrests")[1, ] dbBegin(con) rs <- dbSendQuery(con, "DELETE FROM arrests WHERE Murder > 5") dbClearResult(rs) dbCommit(con) dbGetQuery(con, "SELECT count(*) FROM arrests")[1, ] # Named savepoints can be nested -------------------------------------------- dbBegin(con, "a") dbBegin(con, "b") dbRollback(con, "b") dbCommit(con, "a") dbDisconnect(con)