为什么sqlite3内存数据库持久化到磁盘?

Why is sqlite3 memory database persisted to disk?

在我的 go 程序中,我这样做是为了初始化我的 sqlite3 模式:

db.MustExec(`ATTACH DATABASE ":memory:" AS "mem"`)
db.MustExec(`CREATE TABLE IF NOT EXISTS "mem.token" (
    "token"  TEXT NOT NULL UNIQUE,
    "expire" INTEGER NOT NULL,
    "login"  TEXT NOT NULL,
    "auth"   INTEGER NOT NULL,
    PRIMARY KEY("token")
) WITHOUT ROWID`)

问题是,这个 table 是 persisted 到磁盘!退出程序后,我使用sqlite3命令行工具打开数据库文件,mem.token table还在,如果我向其中插入数据,即使我重启后数据仍然存在并且可用PC.

如何用瞬时数据制作内存table?

试试这个

db.MustExec(`ATTACH DATABASE "" AS "mem"`)

检查 https://www.sqlite.org/inmemorydb.html

Temporary Databases 部分

通过引用您创建的数据库:

db.MustExec(`CREATE TABLE IF NOT EXISTS "mem.token" (

您正在指示 SQLite 在当前数据库上创建一个名为 mem.token 的数据库。如果要在附加内存数据库上创建名为 token 的数据库,请不要使用引号:

db.MustExec(`CREATE TABLE IF NOT EXISTS mem.token (