R:用数据框更新 mysql table

R: Update a mysql table with data frame

我有一个 MariaDB,我想用本地 R 数据框更新 table。例如,我有一个包含这些列名称的 table:

id,foo,bar

id 是数据库 table.

上的主键

有没有一种功能可以让我轻松地用我的本地数据框更新远程数据库?理想情况下,我正在寻找这样的东西:

update_table(con, remote_table_name, local_data_frame, primary_key="id")

我知道我可以将这样的 SQL 语句写成一个字符串,然后用 DBI::dbSendStatement(con, query):

执行它
INSERT INTO mytable (id, foo, bar)
VALUES (1, 'a1', 'b1'),
(2, 'a2', 'b2'),
(3, 'a3', 'b3'),
(4, 'a4', 'b4'),
ON DUPLICATE KEY UPDATE id=VALUES(id),
foo=VALUES(foo),
bar=VALUES(bar)

但如果没有针对这个看似简单的操作的开箱即用的解决方案,我会感到惊讶。有人知道这样的功能是否嵌入到包中吗?

dbx 包有一个功能完全符合我的需要:

dbxUpdate(db, table, records, where_cols=c("id"))

它确实适用于 MariaDB。