The default dbCreateTable() method calls sqlCreateTable() and dbExecute(). Backends compliant to ANSI SQL 99 don't need to override it. Backends with a different SQL syntax can override sqlCreateTable(), backends with entirely different ways to create tables need to override this method.

dbCreateTable(conn, name, fields, ..., row.names = NULL, temporary = FALSE)

Arguments

conn

A DBIConnection object, as returned by dbConnect().

name

Name of the table, escaped with dbQuoteIdentifier().

fields

Either a character vector or a data frame.

A named character vector: Names are column names, values are types. Names are escaped with dbQuoteIdentifier(). Field types are unescaped.

A data frame: field types are generated using dbDataType().

...

Other arguments used by individual methods.

row.names

Must be NULL.

temporary

If TRUE, will generate a temporary table statement.

Details

The row.names argument is not supported by this method. Process the values with sqlRownamesToColumn() before calling this method.

The argument order is different from the sqlCreateTable() method, the latter will be adapted in a later release of DBI.

See also

Examples

con <- dbConnect(RSQLite::SQLite(), ":memory:") dbCreateTable(con, "iris", iris) dbReadTable(con, "iris")
#> [1] Sepal.Length Sepal.Width Petal.Length Petal.Width Species #> <0 rows> (or 0-length row.names)