Jeśli wstawiasz wiele wierszy z tego samego klienta w tym samym czasie, można użyć INSERT z wielu wartości
INSERT INTO test2(col1, col2, col3, col4)
VALUES
('val1', 'val2', val3, val4),
('val1', 'val2', val3, val4),
('val1', 'val2', val3, val4)
Oto przykład, jak utworzyć zapytanie. Używam data.table
tutaj:
dat <- matrix(seq(4*3), 3, 4)
library(data.table)
DT <- data.table(t(dat))
query <- paste('INSERT INTO test2(col1, col2, col3, col4)\nVALUES\n',
gsub('c','',(DT[,paste(.SD,collapse='\n')])))
cat(query)
INSERT INTO test2(col1, col2, col3, col4)
VALUES
(1, 4, 7, 10)
(2, 5, 8, 11)
(3, 6, 9, 12)
następnie można wykonać go za pomocą dbGetQuery
:
dbGetQuery(con, query)
Chciałbym również rozważyć narzędzia wiersza polecenia dla MySQL jako alternatywa. –
Istnieją również interfejsy MySQL, takie jak Sequel Pro (dla komputerów Mac) i Heidi SQL (dla systemu Windows), które powinny mieć opcję importu CSV ... – Carson
Jeśli dane znajdują się poza R, a wysyłasz je do miejsca docelowego, które jest również poza R, nie powinieneś angażować R. To tylko spowolni działania i wprowadzi wiele pośrednich kroków, które mogą pójść nie tak. Jedną rzeczą, którą możesz zrobić w R, jest załadowanie tylko pierwszych kilku linii w celu sprawdzenia nagłówków i typów kolumn. Może to być pomocne w zapewnieniu prawidłowej struktury tabeli. –