我有一段代码:
mydb <- dbConnect(MySQL(), user = "****", password = "****", dbname = "c_global", host = "")
df_ipt_rate_history <- fetch(dbSendQuery(mydb, "select * from ipt_rate_history"), n=-1)
df_map_occupation <- fetch(dbSendQuery(mydb, "select * from map_occupation"), n=-1)
df_map_titles <- fetch(dbSendQuery(mydb, "select * from map_titles"), n=-1)
df_pcode_full_areas <- fetch(dbSendQuery(mydb, "select * from pcode_full_areas"), n=-1)
df_pcode_rics_regions <- fetch(dbSendQuery(mydb, "select * from pcode_rics_regions"), n=-1)
df_pcode_sector_areas <- fetch(dbSendQuery(mydb, "select * from pcode_sector_areas"), n=-1)
...等等(多表)
dbDisconnect(mydb)
它工作正常,但有没有一种方法可以设置某种循环,在单个命令中读取数据库中的每个表(并输出到数据帧)?
谢谢
最佳答案
您可以使用 dbListTables
列出数据库中的所有表,然后使用实用函数 dbReadTable
读取它们的所有行和列。
all_data <- lapply(dbListTables(mydb), dbReadTable, conn = mydb)
顺便说一句,除非有必要,如果需要时可以从数据库中读取所有数据,那么将所有数据加载到内存中可能不是一个好主意。
关于mysql - RMySQL - 自动从数据库表中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58913810/