如何在 R 中将整个数据帧写入 mySql table
How to write entire dataframe into mySql table in R
我有一个包含列 'Quarter' 的数据框,其值类似于“16/17 Q1”、“16/17 Q2”...和 'Vendor' 其值类似于 "a" , "b"....
我正在尝试使用
将此数据框写入数据库
query <- paste("INSERT INTO cc_demo (Quarter,Vendor) VALUES(dd$FY_QUARTER,dd$VENDOR.x)")
但它抛出错误:
Error in .local(conn, statement, ...) :
无法 运行 语句:'field list'
中的未知列 'dd$FY_QUARTER'
我是 Rmysql 的新手,请给我一些解决方案来编写整个数据框?
我建议不要编写 sql 查询,因为您实际上可以使用非常方便的函数,例如 RMySQL
包中的 dbWriteTable
。但为了练习,下面是一个示例,说明您应该如何编写为 MySQL
数据库执行多个插入的 sql 查询:
# Set up a data.frame
dd <- data.frame(Quarter = c("16/17 Q1", "16/17 Q2"), Vendors = c("a","b"))
# Begin the query
sql_qry <- "insert into cc_demo (Quarter,Vendor) VALUES"
# Finish it with
sql_qry <- paste0(sql_qry, paste(sprintf("('%s', '%s')", dd$Quarter, dd$Vendors), collapse = ","))
你应该得到:
"insert into cc_demo (Quarter,Vendor) VALUES('16/17 Q1', 'a'),('16/17 Q2', 'b')"
您可以将此查询提供给您的数据库连接,以便 运行 它。
希望对您有所帮助。
要将数据帧写入 mySQL 数据库,您需要:
创建到您的数据库的连接,您需要指定:
- MySQL连接
- 用户
- 密码
- 主持人
- 数据库名称
library("RMySQL")
connection <- dbConnect(MySQL(), user = 'root', password = 'password', host = 'localhost', dbname = 'TheDB')
- 使用连接创建一个table然后导出数据到数据库
dbWriteTable(connection, "testTable", testTable)
您可以像这样覆盖现有的 table:
dbWriteTable(connection, "testTable", testTable_2, overwrite=TRUE)
我有一个包含列 'Quarter' 的数据框,其值类似于“16/17 Q1”、“16/17 Q2”...和 'Vendor' 其值类似于 "a" , "b"....
我正在尝试使用
将此数据框写入数据库query <- paste("INSERT INTO cc_demo (Quarter,Vendor) VALUES(dd$FY_QUARTER,dd$VENDOR.x)")
但它抛出错误:
Error in .local(conn, statement, ...) :
无法 运行 语句:'field list'
中的未知列 'dd$FY_QUARTER'我是 Rmysql 的新手,请给我一些解决方案来编写整个数据框?
我建议不要编写 sql 查询,因为您实际上可以使用非常方便的函数,例如 RMySQL
包中的 dbWriteTable
。但为了练习,下面是一个示例,说明您应该如何编写为 MySQL
数据库执行多个插入的 sql 查询:
# Set up a data.frame
dd <- data.frame(Quarter = c("16/17 Q1", "16/17 Q2"), Vendors = c("a","b"))
# Begin the query
sql_qry <- "insert into cc_demo (Quarter,Vendor) VALUES"
# Finish it with
sql_qry <- paste0(sql_qry, paste(sprintf("('%s', '%s')", dd$Quarter, dd$Vendors), collapse = ","))
你应该得到:
"insert into cc_demo (Quarter,Vendor) VALUES('16/17 Q1', 'a'),('16/17 Q2', 'b')"
您可以将此查询提供给您的数据库连接,以便 运行 它。
希望对您有所帮助。
要将数据帧写入 mySQL 数据库,您需要:
创建到您的数据库的连接,您需要指定:
- MySQL连接
- 用户
- 密码
- 主持人
- 数据库名称
library("RMySQL")
connection <- dbConnect(MySQL(), user = 'root', password = 'password', host = 'localhost', dbname = 'TheDB')
- 使用连接创建一个table然后导出数据到数据库
dbWriteTable(connection, "testTable", testTable)
您可以像这样覆盖现有的 table:
dbWriteTable(connection, "testTable", testTable_2, overwrite=TRUE)