Ich führe ein Skript, das verschiedene Datensätze in einer MySQL-Datenbank speichert. Dies funktioniert bisher, aber nur sequentiell. zB:Zweiter RMySQL-Vorgang schlägt fehl - warum?
# write table1
replaceTable(con,tbl="table1",dframe=dframe1)
# write table2
replaceTable(con,tbl="table2",dframe=dframe2)
Wenn ich beide wählen (ich verwende StatET/Eclipse) und die Auswahl läuft, bekomme ich eine Fehlermeldung:
Error in function (classes, fdef, mtable) :
unable to find an inherited method for function "dbWriteTable",
for signature "MySQLConnection", "data.frame", "data.frame".
Ich denke, dies mit der Tatsache zu tun hat, dass mein con immer noch beschäftigt oder so, wenn die zweite Anfrage gestartet wird. Wenn ich das Skript Zeile um Zeile durchführe, funktioniert es einfach. Daher frage ich mich, wie kann ich R sagen, zu warten, bis die erste Anfrage fertig ist und dann weitermachen? Wie kann ich R Skripte interaktiv machen (nur Konsolen wie Plot Beispiele - kein Tcl/Tk).
EDIT:
require(RMySQL)
replaceTable <- function(con,tbl,dframe){
if(dbExistsTable(con,tbl)){
dbRemoveTable(con,tbl)
dbWriteTable(con,tbl,dframe)
cat("Existing database table updated/overwritten.")
}
else {
dbWriteTable(con,tbl,dframe)
cat("New database table created")
}
}
Woher kommt die Funktion replaceTable? Es ist nicht in der DBI-Schnittstelle! –
sry. hat meinen Beitrag bearbeitet. –
Probieren Sie 'help (" replaceTable ")', oder zweitbeste, erhalten Sie den Quellentyp 'replaceTable'. –