在我的 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`)
問題是,這張表被持久化到了磁盤!退出程式后,我使用sqlite3命令列工具打開資料庫檔案,mem.token表還在,如果我插入資料,即使我重新啟動我的電腦,資料仍然存在并且可用。
如何制作帶有瞬態資料的記憶體表?
uj5u.com熱心網友回復:
通過參考您創建的資料庫:
db.MustExec(`CREATE TABLE IF NOT EXISTS "mem.token" (
您正在指示 SQLite 創建一個mem.token在當前資料庫上按字面命名的資料庫。如果要創建token在附加記憶體資料庫上呼叫的資料庫,請不要使用引號:
db.MustExec(`CREATE TABLE IF NOT EXISTS mem.token (
uj5u.com熱心網友回復:
試試這個
db.MustExec(`ATTACH DATABASE "" AS "mem"`)
檢查https://www.sqlite.org/inmemorydb.html 的Temporary Databases部分
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/382477.html
上一篇:為什么我的LinkedHashMap被錯誤地轉換為JSON并保存在SharedPreferences中?
下一篇:SQLAlchemy:AttributeError:無法在“_sa_instance_state”列的行中找到列
