我使用 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 来做到这一点,应该会更好,等等。
谢谢!