mysql - 如何使用 R 将数据框中的数据插入 MySQL 表中的选定列
问题描述
我有一个由名为INTERNAL_ID
,NT_CLONOTYPE
和的 3 列组成的数据框SAMPLE_ID
。我需要在 R 中编写一个脚本,将这些数据传输到 MySQL 表中具有确切名称的适当 3 列中。但是,该表有 3 列以上,例如 5 列(INTERNAL_ID
、COUNT
、NT_CLONOTYPE
、AA_CLONOTYPE
和SAMPLE_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
我怀疑这是因为每个文件中的列数不一样,但我不确定。如果是这样,我该如何解决这个问题。
解决方案
我想到了。我将“COUNT”的表条目更改为默认为 NULL。这允许程序通过忽略“COUNT”来继续。
推荐阅读
- asp.net-core - Razor 页面中 foreach 循环的空引用
- c# - 避免在短期视图模型上出现 WeakEventManager 和内存泄漏
- javascript - 在 JS 中对 json 数组使用 find 方法时仅发送键值
- flutter - “字符串”类型不是“值”的“文件”类型的子类型
- c# - Selenium ChromeDriver 发布后无法导航 URL
- windows - 在 Windows 上编译时出现 Apache thrift 错误
- machine-learning - 对训练或验证分区执行交叉验证以调整参数
- azure - Azure-从警报中提取日志值
- azure-web-app-service - 根据请求检查大多数 CPU 使用率/时间(Azure appservice/应用程序洞察力)
- tfs - CI 如何确定它应该运行构建?