2010-10-11 108 views
1

這是我第一次嘗試在本地MySQL數據庫和R之間來回傳送數據。也就是說,我在數據庫中創建了一個表,並希望向其中插入數據。目前,它是一個空白表(使用MySQL查詢瀏覽器創建)並具有PK集。RODBC插入查詢

我正在使用RODBC軟件包(RMySQL給了我錯誤)並且更喜歡堅持使用這個庫。

我應該如何將數據框中的數據插入此表中?是否有一個快速的解決方案還是我需要:

  1. 從我的數據幀
  2. 插入創建一個新的臨時表中的數據
  3. 刪除臨時表

設有獨立的命令?任何幫助非常感謝!

+0

個人而言,我更喜歡RMySQL包。您提到的錯誤可能與您的libmySQL.dll版本有關(如果您使用的是Windows,則必須使用5.0版本)。我想對我來說,使用SQL從SQL數據庫進行調用感覺更自然。 – 2010-10-12 02:43:02

+0

我也使用RMySQL,並且發現使用本地sql語法很容易使用併發送sql查詢,而不是像Dirk給出的例子那樣爲每種查詢類型提供不同的函數和參數。我想知道RODBC優於RMySQL的優點。 – 2010-10-12 15:35:14

回答

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) 

它希望應該足以讓你去。