首页 > 解决方案 > 如何使用 R 将数据框中的数据插入 MySQL 表中的选定列

问题描述

我有一个由名为INTERNAL_ID,NT_CLONOTYPE和的 3 列组成的数据框SAMPLE_ID。我需要在 R 中编写一个脚本,将这些数据传输到 MySQL 表中具有确切名称的适当 3 列中。但是,该表有 3 列以上,例如 5 列(INTERNAL_IDCOUNTNT_CLONOTYPEAA_CLONOTYPESAMPLE_ID)。MySQL 表已经存在,可能包含也可能不包含预先存在的数据行。

我在 R 中使用 dbx 和 RMariaDB 库。我已经能够使用dbxConnect(). 当我尝试跑步时dbxUpsert()

-----
conx <- dbxConnect(adapter = "mysql", dbname = "TCR_DB", host = "127.0.0.1", user = "xxxxx", password = "xxxxxxx")

table <- "TCR"
records <- newdf  #dataframe previously created with the update data.

dbxUpsert(conx, table, records, where_cols = c("INTERNAL_ID"))

dbxDisconnect(conx)

我希望获得一个包含新行的更新 mysql 表,这些新行在数据框中未包含的列中可能有也可能没有空条目。

Ex.
INTERNAL_ID  COUNT  NT_CLONOTYPE  AA_CLONOTYPE SAMPLE_ID
Pxxxxxx.01          CTTGGAACTG                  PMA.01

连接和断开都运行正常,但我得到以下错误而不是输出:

  Error in .local(conn, statement, ...) : 
  could not run statement: Field 'COUNT' doesn't have a default value

我怀疑这是因为每个文件中的列数不一样,但我不确定。如果是这样,我该如何解决这个问题。

标签: mysqlr

解决方案


我想到了。我将“COUNT”的表条目更改为默认为 NULL。这允许程序通过忽略“COUNT”来继续。


推荐阅读