为什么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 (
在我的 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 (