我正在尝试更新数据库版本,但是,我遇到了一个奇怪的问题......这是我的代码:
version = 2
local cur_db_version=nil
for data in db:nrows("PRAGMA user_version") do
cur_db_version=data
break
end
local db_version=cur_db_version.user_version
print(db_version)
print(version)
if (db_version~=version) then
create()
db:exec("PRAGMA user_version="..version)
end
想象数据库版本是1
,我期待我的脚本打印这个:
1
2
但它打印的是:
2
2
为什么?我不知道,但是,我知道如果我评论该行db:exec("PRAGMA user_version="..version)
,那么它真的会打印:
1
2
那么,我的代码有什么问题导致错误的输出?该行是否db:exec("PRAGMA user_version="..version)
在打印之前以某种方式执行?如果是这样,我该如何更改我的代码以便它只create()
在version
更改时调用?
顺便说一句,我正在使用 Corona SDK,但我不认为问题与它有关吗?