![](/img/trans.png)
[英]Saving dbplyr query (tbl_sql object) to MySQL without saving data locally
[英]Save a tbl_sql in R to MySQL?
我只是在用 R 學習 MySQL,我想知道這是否可能。
我使用 RMariaDB 包對 MySQL 上存在的數據庫執行了查詢,如下所示:
library(RMariaDB)
con <- DBI::dbConnect(RMariaDB::MariaDB(),
dbname = "",
host = "",
user = "",
password = "") #details omitted
df <- tbl(con,"df")
然后我使用 dplyr 命令對這個對象進行了一些調整。 我可以在不首先將其轉換為數據框或小標題的情況下將新的、已清理的表作為新表保存到 mySQL 嗎? 它的類,根據 R 是:
class(df)
[1] "tbl_MariaDBConnection" "tbl_dbi" "tbl_sql"
[4] "tbl_lazy" "tbl"
嘗試遵循保存普通數據幀的方法會給我帶來各種錯誤,通常是“沒有適用於類 tbl_MariaDBConnection 的對象的方法”
謝謝你。
您可以使用compute()
函數將結果寫入數據庫中的表。 如果沒有其他參數,它將寫入臨時表(會話結束時將被清除),但您可以指定使其成為非臨時表。 tbl_sql
上的compute()
文檔位於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 語法的差異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.