sqlCreateTable {DBI}R Documentation

Compose query to create a simple table


Exposes an interface to simple ⁠CREATE TABLE⁠ commands. The default method is ANSI SQL 99 compliant. This method is mostly useful for backend implementers.


sqlCreateTable(con, table, fields, row.names = NA, temporary = FALSE, ...)



A database connection.


The table name, passed on to dbQuoteIdentifier(). Options are:

  • a character string with the unquoted DBMS table name, e.g. "table_name",

  • a call to Id() with components to the fully qualified table name, e.g. Id(schema = "my_schema", table = "table_name")

  • a call to SQL() with the quoted and fully qualified table name given verbatim, e.g. SQL('"my_schema"."table_name"')


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().


Either TRUE, FALSE, NA or a string.

If TRUE, always translate row names to a column called "row_names". If FALSE, never translate row names. If NA, translate rownames only if they're a character vector.

A string is equivalent to TRUE, but allows you to override the default name.

For backward compatibility, NULL is equivalent to FALSE.


If TRUE, will generate a temporary table statement.


Other arguments used by individual methods.


The row.names argument must be passed explicitly in order to avoid a compatibility warning. The default will be changed in a later release.


sqlCreateTable(ANSI(), "my-table", c(a = "integer", b = "text"))
sqlCreateTable(ANSI(), "my-table", iris)

# By default, character row names are converted to a row_names colum
sqlCreateTable(ANSI(), "mtcars", mtcars[, 1:5])
sqlCreateTable(ANSI(), "mtcars", mtcars[, 1:5], row.names = FALSE)

[Package DBI version 1.1.2 Index]