如何解决如何在sqlSave命令中跳过主键?
| 我正在尝试使用RODBC在MySQL数据库中插入data.frame。我正在使用的命令如下:sqlSave(channel,dbData,tablename=\'table_name\',append=TRUE,safer=TRUE,fast=FALSE,verbose=TRUE)
现在,我要在其中插入数据的表具有一个自动递增的主键。我的表共有7列,包括主键。在我的数据框中,我有6列,因为我不想自己插入PK。但是,当我运行命令时,出现以下错误:
23000 1062 [MySQL][ODBC 5.1 Driver][mysqld-5.5.13]Duplicate entry \'1\' for key \'PRIMARY\'
从上面的错误中,我了解到,当已经有一条记录作为其PK时,它正在尝试插入\'1 \'作为主键。知道如何使用sqlSave()避免这种情况吗?
提前致谢。
解决方法
您可以尝试在数据框中添加第七列,并为PK列数据设置
NULL
或0
的值。然后MySQL将自动为其生成值。
, 使用ѭ4,这样将根据匹配的主键更新行。如果您确实要追加,则需要在写入数据库之前为新行创建唯一的ID。这在R中非常简单,但是您需要确保它们对于db中已有的内容以及R中的新数据而言是唯一的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。