在 go 中,我使用 mattn/go-sqlite3 模块打开了一个 sqlite3 数据库。我使用 PRAGMA journal_mode=WAL 打开后立即将数据库日志模式设置为 WAL。
但是,如果我在第一个进程运行时尝试从第二个进程打开数据库,则第二个进程无法打开它,而是出现“数据库已锁定”错误。即使我没有执行任何交易,也会发生这种情况。
我正在使用的连接字符串是:
"file:mydbfile.db?cache=shared&mode=rwc"
(我打算回答我自己的问题,因为调试花了很长时间)