2010-10-11 2 views
1

Это моя первая попытка бросить данные взад и вперед между локальной базой данных MySQL и R. Это говорит о том, что у меня есть таблица, созданная в базе данных, и вы хотите вставить в нее данные. В настоящее время это пустая таблица (созданная с помощью MySQL Query Browser) и имеет набор PK.Запрос на добавление RODBC

Я использую пакет RODBC (RMySQL дает мне ошибки) и предпочитаю придерживаться этой библиотеки.

Как следует вставлять данные из фрейма данных в эту таблицу? Есть быстрое решение или мне нужно сделать:

  1. Создать новую временную таблицу из моего dataframe
  2. Вставьте данные
  3. падения таблицы температуры

С отдельными командами? Любая помощь очень ценится!

+0

Лично я предпочитаю пакет RMySQL. Ошибки, которые вы имеете в виду, скорее всего, будут связаны с вашей версией libmySQL.dll (вы должны использовать один из 5.0, если находитесь в Windows). Я думаю, мне просто кажется более естественным использовать SQL для вызова из базы данных SQL. –

+0

Я также использую RMySQL и считаю его простым в использовании и отправке sql-запросов в собственный синтаксис sql вместо использования разных функций и аргументов для каждого типа запросов, как показано в примере, представленном Dirk. Мне было бы интересно узнать преимущества RODBC над RMySQL. –

ответ

4

См. help(sqlSave) в документации по упаковке; в этом примере показан

channel <- odbcConnect("test") 
sqlSave(channel, USArrests, rownames = "state", addPK=TRUE) 
sqlFetch(channel, "USArrests", rownames = "state") # get the lot 
foo <- cbind(state=row.names(USArrests), USArrests)[1:3, c(1,3)] 
foo[1,2] <- 222 
sqlUpdate(channel, foo, "USArrests") 
sqlFetch(channel, "USArrests", rownames = "state", max = 5) 
sqlDrop(channel, "USArrests") 
close(channel) 

, который, надеюсь, должен быть достаточным для того, чтобы вы шли.

Смежные вопросы