【发布时间】:2014-05-24 22:42:14
【问题描述】:
(对不起,如果这是非常基本的,我只是无法弄清楚)
我在 mysql 数据库中有一个表 t,它看起来像这样:(名称是主键)
数据库中的当前表
Name Balance
Bob 100
Ted 150
Carl 130
我在 R 中也有一个 data.frame 反映余额变化
R 中的 data.frame
Name Balance
Bob 90
Ted 170
Bill 50
我想执行相当于 mysql replace 的操作,以便更新我的表以反映新余额
数据库中的所需表
Name Balance
Bob 90
Ted 170
Carl 130
Bill 50
我目前正在使用 RMySQL 包 - 我尝试使用 dbWriteTable 执行此操作,但无法使其正常工作。
Eg1(“插入”)
dbWriteTable(dbConnection, 'tableName', df, row.names=F, append=T)
生产
Name Balance
Bob 100
Ted 150
Carl 130
Bill 50
Eg2(“覆盖”)
dbWriteTable(dbConnection, 'tableName', df, row.names=F, append=F, overwrite=T)
生产
Name Balance
Bob 90
Ted 170
Bill 50
如何进行替换?
【问题讨论】:
-
你应该分享你尝试过的东西并解释它是如何不起作用的。不过,我不确定您为什么要使用
dbWriteTable。您是否只需编写一个特定的替换查询并像其他任何select、delete或insert查询一样发送它? -
按照建议添加了对我的尝试的更多解释。替换查询会是什么样子?注意-我的数据框和 mySQL 表都很大,因此它可能需要是“批量”的替换