rows_insert.tbl_lazy {dbplyr} | R Documentation |
These are methods for the dplyr rows_insert()
, rows_append()
,
rows_update()
, rows_patch()
, rows_upsert()
, and rows_delete()
generics.
When in_place = TRUE
these verbs do not generate SELECT
queries, but
instead directly modify the underlying data using INSERT
, UPDATE
, or
DELETE
operators. This will require that you have write access to
the database: the connection needs permission to insert, modify or delete
rows, but not to alter the structure of the table.
The default, in_place = FALSE
, generates equivalent lazy tables (using
SELECT
queries) that allow previewing the result without actually
modifying the underlying table on the database.
## S3 method for class 'tbl_lazy' rows_insert( x, y, by = NULL, ..., conflict = c("error", "ignore"), copy = FALSE, in_place = FALSE, returning = NULL, method = NULL ) ## S3 method for class 'tbl_lazy' rows_append(x, y, ..., copy = FALSE, in_place = FALSE, returning = NULL) ## S3 method for class 'tbl_lazy' rows_update( x, y, by = NULL, ..., unmatched = c("error", "ignore"), copy = FALSE, in_place = FALSE, returning = NULL ) ## S3 method for class 'tbl_lazy' rows_patch( x, y, by = NULL, ..., unmatched = c("error", "ignore"), copy = FALSE, in_place = FALSE, returning = NULL ) ## S3 method for class 'tbl_lazy' rows_upsert( x, y, by = NULL, ..., copy = FALSE, in_place = FALSE, returning = NULL, method = NULL ) ## S3 method for class 'tbl_lazy' rows_delete( x, y, by = NULL, ..., unmatched = c("error", "ignore"), copy = FALSE, in_place = FALSE, returning = NULL )
x |
A lazy table.
For |
y |
A lazy table, data frame, or data frame extensions (e.g. a tibble). |
by |
An unnamed character vector giving the key columns. The key columns
must exist in both By default, we use the first column in |
... |
Other parameters passed onto methods. |
conflict |
For One of:
|
copy |
If |
in_place |
Should |
returning |
Columns to return. See |
method |
A string specifying the method to use. This is only relevant for
|
unmatched |
For One of:
|
A new tbl_lazy
of the modified data.
With in_place = FALSE
, the result is a lazy query that prints visibly,
because the purpose of this operation is to preview the results.
With in_place = TRUE
, x
is returned invisibly,
because the purpose of this operation is the side effect of modifying rows
in the table behind x
.
library(dplyr) con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:") DBI::dbExecute(con, "CREATE TABLE Ponies ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, cutie_mark TEXT )") ponies <- tbl(con, "Ponies") applejack <- copy_inline(con, data.frame( name = "Apple Jack", cutie_mark = "three apples" )) # The default behavior is to generate a SELECT query rows_insert(ponies, applejack, conflict = "ignore") # And the original table is left unchanged: ponies # You can also choose to modify the table with in_place = TRUE: rows_insert(ponies, applejack, conflict = "ignore", in_place = TRUE) # In this case `rows_insert()` returns nothing and the underlying # data is modified ponies