我正在尝试使用RODBC将新行插入Microsoft Access数据库中的表。问题是主键列是自动编号,它似乎不允许我省略此列。我使用带有append = TRUE的sqlSave函数和带有单行的数据框。我尝试过以下方法:
1:将列完全从数据框中删除。这会导致错误:
Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test, :
missing columns in 'data'
2:将主键列的值设置为整数NA。这给了我:
Error in sqlSave(conn, exptrow, table = "archiverapp_experiments", append = TRUE, :
unable to append to table ‘archiverapp_experiments’
潜水员错误与verbose = TRUE:
23000 -1504 [Microsoft][ODBC Microsoft Access Driver] You tried to assign the Null value to a variable that is not a Variant data type.
3:将PK的值设置为零,正如我在另一篇StackOverflow帖子中的答案中看到的那样。这是第一次工作,但实际上将PK显式设置为零,因此它不再起作用。
我想我可以在添加之前执行查询以查找PK列的最大值,然后只需添加一个。然而,这似乎打败了自动编号专栏的目的。是否有更简单或更优雅的解决方案?