R を使用して SQLite データベースを作成しましたが、それから (同じ sqlite DB にアクセスできる複数のコアから並行して) 複数回読み取り、別の DB に複数回、〜 1,000 回以上並行して書き込みたいと考えています。ただし、そのような操作を実行しようとすると、次のエラーが発生します。
sqliteFetch(rs, n = -1, ...) :
RSQLite driver: (RS_SQLite_fetch: failed first step: database is locked)
私のスクリプトでは、エラーが発生していると思われる次の2つのコマンドを実行しています(読み取りまたは書き込みによるものかどうかはわかりません):
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 を使用してそれを行うことができる、より適切に機能する必要がある、などの提案も受け付けています。
ありがとう!