2012-03-12 9 views
0

だから、ここでは実行しようとしているコードです。Sqliteのcase文の喜び

begin transaction; 
SELECT [version] as ver FROM [dbinfo]; 
WHEN ver = 1 THEN 
    UPDATE [dbinfo] SET [version]=2; 
    ver = 2; 
    ALTER TABLE [cards] ADD COLUMN [alternate] TEXT NOT NULL; 
END 
WHEN ver = 2 THEN 
    UPDATE [dbinfo] SET [version]=3; 
    ver = 3; 
    ALTER TABLE [cards] ADD COLUMN [dependent] TEXT NOT NULL; 
    ALTER TABLE [cards] ADD COLUMN [mutable] BOOLEAN; 
END 
commit transaction; 

動作しません。 WHENで立ち往生します。私もCASE WHENを試してみました。 私はverによってこれをverまでステップする必要があります。だから、このようなものを作る方法に関するアイデアはSqliteで使えますか?おかげさまで

+1

何が問題なのですか?それは何を期待していますか? – Randy

+0

それはsqliteだと思いますか?私はそれが現在のdbinfo.versionを選択し、変更を加え、dbinfo.versionを更新し、次の変更にステップすることを期待します。 –

+0

私は、実践的に言えば、私は終了したいと思いますし、それぞれのWHENステートメントの間でトランザクションを再開しますが、とにかく動作しません。 –

答えて

1

できません。トランザクションなどを使用して回避策を使用する必要があります。