2012-03-12 34 views
0

好的,這裏是我試圖執行的代碼。Sqlite case case joys

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 2012-03-12 20:05:25

+0

我猜是sqlite嗎?我期望它選擇當前的dbinfo.version,然後進行更改,更新dbinfo.version,然後進入下一個更改。 – 2012-03-12 20:15:23

+0

我想用實際的術語說,我想結束,然後在每個WHEN語句之間重新開始事務,但是它們不起作用。 – 2012-03-12 20:17:34

回答

1

無法完成。必須使用交易和東西的解決方法。