而不是追加或覆蓋整個表到數據庫,RMySQL中是否有任何功能可以只更新表的一部分?因爲我們的某些數據有一天可能會不完整,所以我需要保留原來的表格,並且只替換那些有新數據的行,下面是我寫的函數,但沒有用,需要幫助:如何使用RMySQL包更新MySQL表
col.info <- "(id int, timestamp bigint, yyyy int, mm int, dd int, value double,
PRIMARY KEY(id, timestamp, yyyy, mm, dd))"
Func <- function(con, tbl.name, dat.set, col.info) {
if (dbExistsTable(con, tbl.name)) {
dbWriteTable(con, tbl.name, dat.set, row.names=F, append=T); #what can I change the append for??
} else {
dbSendQuery(con, paste("CREATE TABLE IF NOT EXISTS", tbl.name, col.info, sep=" "));
dbWriteTable(con, tbl.name, dat.set, row.names=F, append=T);
}
}
Func(conn_table, "daily_update", df, col.info)
你可以使用dbSendQuery。你說它不起作用,但是怎麼樣?你有什麼信息?第二我會調用函數像dailyUpdate而不是Func。 – agstudy
我只是再次運行代碼,這次它工作!但是最後一次整個表被重複,我是數據庫的新手,所以如果主鍵在那裏,表不應該有重複的行,我說得對嗎?謝謝。 – Rosa
是的!主鍵在數據行中是唯一的。 – agstudy