mysql数据库历史语句提取_如何从MySQL数据库的不同表中提取创建语句?

我想通过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

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值