从多个节点读取/写入SQLite中的同一个表/ DB

时间:2014-01-15 19:27:07

标签: sql r sqlite sqldf

我使用R来创建SQLite数据库,现在我想从中读取(并行地从多个可以访问相同sqlite DB的内核)并多次写入另一个DB,大约1,000次或更多次平行。但是,当我尝试执行此类操作时,我收到以下错误:

sqliteFetch(rs, n = -1, ...) : 
RSQLite driver: (RS_SQLite_fetch: failed first step: database is locked)

在我的脚本中,我运行以下两个命令,我认为这些命令会给出错误(不确定它是来自阅读还是写作):

dbGetQuery(db1, sql.query) 
# later on...
if(dbExistsTable(db2, table.name){
dbWriteTable(db2, table.name, my.df, append = T)
} else {
dbWriteTable(db2, table.name, my.df)
}

您知道这种手术是否可行?如果是这样,无论如何要做到并避免这样的错误?之前我问过这个问题,我之所以提到数据库的ACID设计,这让我觉得这样的操作应该是可能的,但不知何故它不起作用。

我也愿意接受建议,例如你可以使用MySQL来做到这一点,应该更好地工作等等。

谢谢!

0 个答案:

没有答案