我真的被困在这里了。我在Mac OSX上创建了一个SQLite数据库,现在我正在尝试在Windows上将数据插入其中。我在两个平台上使用RSQLite库在R中完成它。
我试图从数据框x
插入数据:
> str(x)
'data.frame': 6 obs. of 12 variables:
$ Julian : int ...
$ Date : chr ...
$ Time : chr ...
$ ID : chr ...
$ Item : chr ...
$ Value : num ...
$ Payment : chr ...
$ Type : chr ...
$ Customer : chr ...
$ Operator1: chr ...
$ Operator2: chr ...
$ Weekday : int ...
我尝试以下步骤并收到以下错误消息:
> db=dbConnect(dbDriver("SQLite"),dbname=f)
> dbSendQuery(db,"INSERT INTO Entries VALUES(?,?,?,?,?,?,?,?,?,?,?,?)",x)
Error in .local(conn, statement, ...) :
unused argument (list( ... ))
更新:vaettchen使用带有append = TRUE的dbWriteTable的建议工作,谢谢。但是,dbSendQuery仍然存在问题,在尝试删除id = 74的所有条目时请参阅以下错误:
> dbSendQuery(db,"DELETE FROM Entries WHERE ID=?",id)
Error in .local(conn, statement, ...) : unused argument (74)
感谢任何帮助,这可能只是我无法看到的愚蠢。非常感谢。
答案 0 :(得分:1)
在这种情况下,这对我有用:
id <- 74
sql <- paste( "DELETE FROM Entries WHERE ID=", id )
dbGetQuery( db, sql )
如果要删除多个ID,请使用循环:
id <- c( 73, 74, 78 )
for( i in id )
{
sql <- paste( "DELETE FROM Entries WHERE ID=", i )
dbGetQuery( db, sql )
}
免责声明:我只是一个偶然的RSQLite用户,从未直接使用dbSendQuery
。它可能会为大型数据库或频繁的批量更新带来性能提升。