所以我有一个使用以下方法创建的表:
dbGetQuery(conn, "CREATE TABLE Data (DataID integer primary key autoincrement,
DataTypeID integer, DataName varchar)")
在一些代码之后,我创建了一个名为“insertdata”的数据框,如下所示:
type name
1 1 Data1
2 1 Data2
3 1 Data3
4 1 Data4
5 1 Data5
我使用以下内容将其插入我的表中:
dbWriteTable(conn, "Data", insertdata, append=TRUE)
稍后我创建另一个数据框以插入不同类型的数据,如下所示:
type name
1 2 OtherData1
2 2 OtherData2
3 2 OtherData3
4 2 OtherData4
5 2 OtherData5
但是当我使用与以前相同的 dbWriteTable 时,它会告诉我
"Warning message:
In value[[3L]](cond) :
RS-DBI driver: (RS_SQLite_exec: could not execute: PRIMARY KEY must be unique)"
这是为什么?我的表设置为自动递增主键。我不明白非唯一字符来自哪里。是因为每个行名都相同吗?