R是絕對的初學者,所以請原諒任何明顯的問題。如何使用RODBC將數據框添加到mysql表中
我想用Deducer的數據框更新一個MySQL表(數據庫'test'中的'exdata3')。
我最初調用數據庫並使用推演器中的表,運行一些存儲在數據框'data1'中的查詢。現在我想發送包含新列的'data1',並更新MySQL中的非空表exdata3。
(在未來相比,在MySQL中同一列,我可能不會有新的列/行,但現有的列可能在數據幀不同的值,如果你知道我的意思)
之間的差異數據框和MySQL中的表格是在數據框中添加一列'DiffHighLow'(其中包含表中另外兩個庫侖計算的值)。
我使用RODBC在64位的Windows7
我試圖與後續錯誤下述R和MySQL之間進行通信。
1.> sqlSave(信道,DATA1,exdata3,追加= TRUE,rownames = 「DiffHighLow」,colnames = TRUE,冗長= FALSE,更安全= TRUE,addPK = FALSE, 「整數」,快= TRUE,測試= FALSE,nastring = NULL)
錯誤sqlSave(信道,DATA1,exdata3,追加= TRUE,rownames = 「DiffHighLow」: 對象 'exdata3' 未找到
2.> sqlSave (channel,data1,rownames =「DiffHighLow」,addPK = TRUE)
sqlSave錯誤(channel,data1,rownames =「DiffHighLow」,addPK = TRUE): 42S21 1060 [MySQL] [ODBC 5.3(w)驅動程序] [mysqld-5.0.41-community-nt]重複的列名'diffhighlow '
[RODBC]錯誤:無法SQLExecDirect的' CREATE TABLE data1
(DiffHighLow
VARCHAR(255)NOT NULL PRIMARY KEY,exdata3_id
整數,date
雙,open
雙,high
雙,low
雙,close
雙,shares_
整數,turnover_
雙倍,diffhighlow
雙)'
3。 > SQLUPDATE(信道,DATA1, 「exdata3」)
錯誤SQLUPDATE(信道,DATA1, 「exdata3」): 數據幀列(多個)日期開高低靠近shares_ turnover_ diffhighlow不是在數據庫表
我不明白,爲什麼它不識別數據庫表中已存在的行名稱,除了'DiffHighLow'
請指教。我已經在這麼多的問題上搜索了這樣的問題,並嘗試了已發佈的各種解決方案(這些解決方案看起來與我的查詢最相似),但它們都沒有工作。
非常感謝您的詳細解釋。是的,這正是我想要做的。我必須嘗試幾次並在最終解決問題之前解決一些小錯誤。 – Tanvi 2014-09-05 06:18:33