These generics are responsible for getting data into and out of the database. They should be used a last resort - only use them when you can't make a backend work by providing methods for DBI generics, or for dbplyr's SQL generation generics. They tend to be most needed when a backend has special handling of temporary tables.
db_copy_to()implementscopy_to.src_sql()by callingdb_write_table()(which callsDBI::dbWriteTable()) to transfer the data, then optionally adds indexes (viasql_table_index()) and analyses (viasql_table_analyze()).db_compute()implementscompute.tbl_sql()by callingsql_query_save()to create the table, then optionally adds indexes (viasql_table_index()) and analyses (viasql_table_analyze()).db_collect()implementscollect.tbl_sql()usingDBI::dbSendQuery()andDBI::dbFetch().sql_table_temporary()is used for databases that have special naming schemes for temporary tables (e.g. SQL server and SAP HANA require temporary tables to start with#)db_table_drop_if_exists()is used to drop a table if it exists. This is used whenoverwrite = TRUEindplyr::copy_to()anddplyr::compute().
Usage
db_copy_to(
con,
table,
values,
...,
overwrite = FALSE,
types = NULL,
temporary = TRUE,
unique_indexes = NULL,
indexes = NULL,
analyze = TRUE,
in_transaction = TRUE
)
db_compute(
con,
table,
sql,
...,
overwrite = FALSE,
temporary = TRUE,
unique_indexes = list(),
indexes = list(),
analyze = TRUE,
in_transaction = TRUE
)
db_collect(con, sql, n = -1, warn_incomplete = TRUE, ...)
sql_table_temporary(con, table, temporary, ...)
db_table_drop_if_exists(con, table, ...)See also
Other generic:
db-sql,
db_connection_describe(),
escape()
