dbReadTable-methods {RMySQL}R Documentation

Convenience functions for Importing/Exporting DBMS tables

Description

These functions mimic their R/S-Plus counterpart get, assign, exists, remove, and objects, except that they generate code that gets remotely executed in a database engine.

Value

A data.frame in the case of dbReadTable; otherwise a logical indicating whether the operation was successful.

Methods

conn
an MySQLConnection database connection object.
name
a character string specifying a table name.
value
a data.frame (or coercible to data.frame).
row.names
in the case of dbReadTable, this argument can be a string or an index specifying the column in the DBMS table to be used as row.names in the output data.frame (a NULL, "", or 0 specifies that no column should be used as row.names in the output).

In the case of dbWriteTable, this argument should be a logical specifying whether the row.names should be output to the output DBMS table; if TRUE, an extra field whose name will be whatever the R/S-Plus identifier "row.names" maps to the DBMS (see make.db.names).

overwrite
a logical specifying whether to overwrite an existing table or not. Its default is FALSE.
append
a logical specifying whether to append to an existing table in the DBMS. Its default is FALSE.
allow.keywords
dbWriteTable accepts a logical allow.keywords to allow or prevent MySQL reserved identifiers to be used as column names. By default it is FALSE.

Note

Note that data.frames are only approximately analogous to tables (relations) in relational DBMS, and thus you should not expect complete agreement in their semantics. Tables in RDBMS are best thought of as relations with a number of constraints imposed by the relational database model, and data.frames, with their roots in statistical modeling, as self-contained "sequence of observations on some chosen variables" (Chambers and Hastie (1992), p.46). In particular the data.frame returned by dbReadTable only has primitive data, e.g., it does not coerce character data to factors. Also, column names in a data.frame are not guaranteed to be equal to the column names in a MySQL exported/imported table (e.g., by default MySQL reserved identifiers may not be used as column names — and with 218 keywords like "BEFORE", "DESC", and "FROM" the likelihood of name conflicts is not small.) Use isSQLKeyword(con, names(value)) to check whether the data.frame names in value coincide with MySQL reserver words.

MySQL table names are not case sensitive, e.g., table names ABC and abc are considered equal.

References

See the Database Interface definition document DBI.pdf in the base directory of this package or http://stat.bell-labs.com/RS-DBI.

See Also

MySQL, isSQLKeyword, dbDriver, dbConnect, dbSendQuery, dbGetQuery, fetch, dbCommit, dbGetInfo, dbListTables, dbReadTable.

Examples

## Not run: 
conn <- dbConnect("MySQL", group = "wireless")
if(dbExistsTable(con, "fuel_frame")){
   dbRemoveTable(conn, "fuel_frame")
   dbWriteTable(conn, "fuel_frame", fuel.frame)
}
if(dbExistsTable(conn, "RESULTS")){
   dbWriteTable(conn, "RESULTS", results2000, append = T)
else
   dbWriteTable(conn, "RESULTS", results2000)
}
## End(Not run)

[Package RMySQL version 0.5-5 Index]