在 Lua 中在内存中打开现有的 SQLite 数据库

我项目中的代码现在是:

local lsqlite3 = require "lsqlite3complete"
self.db_conn = lsqlite3.open("cost.db")

function showrow(udata,cols,values,names)
     assert(udata=='test_udata')
     for i=1,cols do
         print('',names[i],values[i])
     end
     return 0
end
self.db_conn:exec('select * from cost',showrow,'test_udata')

从上面的代码中选择 cost 记录没有问题,但如果我像下面这样更改并尝试在内存中打开它:

self.db_conn = lsqlite3.open_memory("cost.db")

代码没有错误,但是在查询时内部没有记录或表。我该如何更改我的代码才能将数据库打开并放入内存中?由于我想在内存中快速访问我的数据,而不是不断连接到数据库。

点赞
用户734069
用户734069

内存数据库

内存数据库是一种仅存在于内存中的数据库。也就是说,它不会从文件中获取数据。因此,open_memory 不需要传入任何参数。

如果您想要使用存储在文件中的数据库,那就意味着需要访问该文件。

您不需要“不断连接到数据库”。您只需要在应用程序开始时连接到它,并保持连接状态,直到应用程序终止。

2018-09-05 15:18:36