2

データベースのバージョンを更新しようとしていますが、奇妙な問題に直面しています...これが私のコードです:

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を使用していますが、問題はそれとは関係ないと思いますよね?

4

1 に答える 1