データベースのバージョンを更新しようとしていますが、奇妙な問題に直面しています...これが私のコードです:
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
ですか?
ちなみに、私はコロナSDKを使用していますが、問題はそれとは関係ないと思いますよね?