我想通过SHOW CREATE TABLE db.table或SHOW CREATE TABLE db1.mytableor提取我的50个MySQL数据库中的所有创建语句SHOW CREATE TABLE db2.sometableor SHOW CREATE TABLE db3.mytable1。因此,每个DB在db1(table,mytable …)中有一些表db2(table1,sometable)等等
通过示例查询来说明DB:
SELECT *
FROM db.table1 m
LEFT JOIN db1.sometable o ON m.id = o.id
LEFT JOIN db2.sometables t ON p.id=t.id
LEFT JOIN db3.sometable s ON s.column='john'
library(RMySQL)
library(DBI)
con
username = "",
password = "",
host = "",
port = 3306,
dbname= mydbname)# when using dbs
使用dbs< -dbGetQuery(con,“SHOW DATABASES”)我可以提取dbConnection中的所有50个数据库作为字符向量。我想循环遍历dbsand中的每个DB,将SHOW CREATE TABLE应用于每个行/ db。我想我必须将每行/ db解析成dbname = mydbnameand dbs< -dbGetQuery(con,“SHOW CREATE TABLE”)。但是我不知道如何使循环 我试过了:
apply(dbs, 1, function(row) {
dbname
for (i in 1:length(dbname)) {
create
})
但这似乎不对。我想我必须将con包含在循环中。否则我会得到:
.local(drv,…)中的错误:未找到对象’dbname’
所以我试过:
apply(dbs, 1, function(row) {
dbname
for (i in 1:length(dbname)) {
con
username = "",
password = "",
host = "",
port = 3306,
dbname= [i])
create
我想这是接近解决方案,但我想念的东西:
dbs
library(foreach)
foreach(i = 1:(length(dbs))%dopar%{
query
creates
})