我只是在用R学习MySQL,我想知道这是否可能。
我使用MySQL包对存在于RMariaDB上的数据库执行了如下查询:
library(RMariaDB)
con <- DBI::dbConnect(RMariaDB::MariaDB(),
dbname = "",
host = "",
user = "",
password = "") #details omitted
df <- tbl(con,"df")然后,我使用dplyr命令对这个对象进行了一些调整。我是否可以将新的、已清理的表保存到mySQL作为新表,而无需首先将其转换为数据帧或table?根据R的说法,这是班级:
class(df)
[1] "tbl_MariaDBConnection" "tbl_dbi" "tbl_sql"
[4] "tbl_lazy" "tbl" 试图遵循保存普通数据帧的方法会给我带来各种错误,通常类似于“tbl_MariaDBConnection类对象不适用的方法”。
谢谢。
发布于 2022-06-22 19:11:54
可以使用compute()函数将结果写入数据库中的表。如果没有其他参数,它将写入一个临时表(会话结束时将清除该表),但您可以指定它为非临时表。compute()在tbl_sql上的文档位于https://dbplyr.tidyverse.org/reference/collapse.tbl_sql.html。
至于您的代码,类似于
compute(df, temporary=FALSE, name="my_table_name")将起作用;如果您需要在架构中使用它,则应该能够使用
compute(df, temporary=FALSE, name = dbplyr::in_schema("my_schema", "my_table_name"))这个方法很好,因为您不必自己编写SQL,因此它处理不同数据库后端之间SQL语法上的差异。
https://stackoverflow.com/questions/72666187
复制相似问题