This method returns the number of rows that were added, deleted, or updated by a data manipulation statement.
This documentation page describes the generics. Refer to the documentation pages linked below for the documentation for the methods that are implemented in various backend packages.
DatabaseConnector::dbGetRowsAffected("DatabaseConnectorDbiResult")
DatabaseConnector::dbGetRowsAffected("DatabaseConnectorJdbcResult")
sparklyr::dbGetRowsAffected("DBISparkResult")
dbGetRowsAffected(res, ...)
An object inheriting from DBIResult.
Other arguments passed on to methods.
dbGetRowsAffected()
returns a scalar number (integer or numeric),
the number of rows affected by a data manipulation statement
issued with dbSendStatement()
.
The value is available directly after the call
and does not change after calling dbFetch()
.
For queries issued with dbSendQuery()
,
zero is returned before
and after the call to dbFetch()
.
This section gives a complete overview over the flow
for the execution of SQL statements that have side effects
such as stored procedures, inserting or deleting data,
Most of this flow, except calling dbBind()
,
is implemented by dbExecute()
, which should be sufficient
for non-parameterized queries.
This flow requires an active connection established by dbConnect()
.
See also vignette("dbi-advanced")
for a walkthrough.
Use dbSendStatement()
to create a result set object of class
DBIResult.
For some queries you need to pass immediate = TRUE
.
Optionally, bind query parameters with dbBind()
.
This is required only if the query contains placeholders
such as ?
or $1
, depending on the database backend.
Optionally, use dbGetRowsAffected()
to retrieve the number
of rows affected by the query.
Use dbClearResult()
to clean up the result set object.
This step is mandatory even if no rows have been fetched
or if an error has occurred during the processing.
It is good practice to use on.exit()
or withr::defer()
to ensure that this step is always executed.
Attempting to get the rows affected for a result set cleared with
dbClearResult()
gives an error.
Other DBIResult generics:
DBIResult-class
,
dbBind()
,
dbClearResult()
,
dbColumnInfo()
,
dbFetch()
,
dbGetInfo()
,
dbGetRowCount()
,
dbGetStatement()
,
dbHasCompleted()
,
dbIsReadOnly()
,
dbIsValid()
,
dbQuoteIdentifier()
,
dbQuoteLiteral()
,
dbQuoteString()
,
dbUnquoteIdentifier()
Other command execution generics:
dbBind()
,
dbClearResult()
,
dbExecute()
,
dbSendStatement()
con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars)
rs <- dbSendStatement(con, "DELETE FROM mtcars")
dbGetRowsAffected(rs)
#> [1] 32
nrow(mtcars)
#> [1] 32
dbClearResult(rs)
dbDisconnect(con)