首页 > 解决方案 > 将数据从 R 中的数据框加载到 MySQL 中具有相同名称但模式名称不同的多个表中

问题描述

我将它包含dfR各种列中,例如 ID、名称、产品和其他不重要的内容。唯一重要的是ID。在此df,有多个具有相同 ID 的行与我要更新的架构具有相同的名称MySQL。可以说这是表格:

ID 姓名 产品 其他的东西
tt637 jj 第二季度 哈哈...
tt637 男朋友 第四季度 jhsdf...
tt637 cj 第一季度 jhfdl...
klm457 jj 第二季度 jshfd...
klm457 lk 第四季度 uipc...
klm457 重量 第一季度 qapfn..
.. 对于所有 100 多个ID 模式

正如我提到的,模式与数据框中的 ID 具有相同的名称。但是,在模式中有一个名为info;的表。所以我们有:ttt637.infoklm457.info100+。

我想要做的是我想根据单个数据框更新.info100 多个模式中的表,但将与每个模式相关的内容分配给所有 100 多个表。请注意,某些表格中可能已经有一些信息可用,因此如果那里有需要更新的值。MySQLRIDschemas.infoschemas.info

我需要使用 for 循环或函数来自动化整个过程。

有人可以帮助我如何做到这一点吗?

我知道对于一个模式,我可以使用类似How to write entire dataframe into mySql table in R但不确定多个模式。

谢谢。

标签: mysqlr

解决方案


我的博士生导师帮助我弄清楚了如何做到这一点。基本上他写道:

for ID_loop in info$ID {
print(ID_loop)
whattoinsert <- info %>% select(ID) %>% distinct()
query = paste("USE schemas.info",
               ID_loop,
               sep = " ")
print(query)
results <- DBI:dbGetQuery(con,query)
dbWriteTable(con, "info",whattoinsert,overwrite = TRUE)
 }

Kudus 给他 :)


推荐阅读