Tüm Create Statements
, SHOW CREATE TABLE db.table
veya SHOW CREATE TABLE db1.mytable
veya SHOW CREATE TABLE db2.sometable
veya SHOW CREATE TABLE db3.mytable1
aracılığıyla 50 MySQL
Veritabanlarımı ayıklamak istiyorum. Böylece veritabanları her bir örnek, bir sorgu ile DBS göstermek için db1(table,mytable...) db2(table1,sometable) and so on
MySQL DB'lerin farklı tablolarından ifadeler nasıl oluşturulur?
içinde bazı tablolar var
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 <- dbConnect(RMySQL::MySQL(),
username = "",
password = "",
host = "",
port = 3306,
dbname= mydbname)# when using dbs<-dbGetQuery(con ,"SHOW DATABASES") I have to ## dbname= mydbname## to get all DBs
I karakter vektörü olarak DbConnection bölgesindeki 50 Veritabanları ayıklamak dbs<-dbGetQuery(con ,"SHOW DATABASES")
kullanılması. Her DB'ye dbs
'da döngü yapmak ve her satır/db'ye SHOW CREATE TABLE
uygulamak istiyorum. Her satırı/db'yi dbname= mydbname
ve dbs<-dbGetQuery(con ,"SHOW CREATE TABLE")
'a ayrıştırmam gerektiğini varsayalım.
apply(dbs, 1, function(row) {
dbname <- row[]
for (i in 1:length(dbname)) {
create<-dbGetQuery(con,"SHOW CREATE TABLE") }
})
Ama o doesnt doğru görünüyor: Ama sadece döngüler
denedim nasıl anlamaya olamaz. Sanırım con
'u bir şekilde döngüye dahil etmeliyim. Aksi halde ben alırsınız: Error in .local(drv, ...) : object 'dbname' not found
yüzden çalıştı:
apply(dbs, 1, function(row) {
dbname <- row[]
for (i in 1:length(dbname)) {
con <- dbConnect(RMySQL::MySQL(),
username = "",
password = "",
host = "",
port = 3306,
dbname= [i])
create<-dbGetQuery(con,"SHOW CREATE TABLE") }})
ben bu çözüm yaklaşır herhalde ama bir şey kaçırmak:
dbs<-dbGetQuery(con,"show databases")
library(foreach)
foreach(i = 1:(length(dbs))%dopar%{
query<-paste("SHOW CREATE TABLE",dbs[i])
creates<-dbGetQuery(con,query)
})
öneri için teşekkür ederiz. Çok teşekkür ederim!! – Googme
@ Parfait. Stmtsdf <- do.call (rbind, createstmts) ile ilgili bir soru sorabilirim '' creatstmts's oldukça büyük, neredeyse 2MB ve rbind'de hata alacağım (deparse.level, ...): argüman sütunlarının sayısı uyuşmuyor 'Bununla başa çıkmak için genel bir yaklaşım var mı? – Googme
Bence DB'mde bazı 'Görünüm'ler de var. Sanırım bir şekilde "rbind" – Googme