自分用のメモです。
<追記あり:2011/08/02>
[sqlfairy-developers] Questions on MySQL -> SQLite translation
このページにTriggerを使った解決方法が書いてあったんだけど、このTriggerの文章だとテーブルのデータ全てに対してUPDATEがかかっちゃう。
ので、書き換えたのがこちら。
ちなみに、IDは一意であるとする前提。
CREATE TRIGGER hoge_modified AFTER UPDATE on hoge FOR EACH ROW BEGIN UPDATE hoge SET modified = current_timestamp WHERE ID = old.ID; END;
まぁ、WHERE句を足しただけなんですけどね。
<追記:2011/08/02>
SQLiteではデフォルトでcurrent_timestampがUTCになってしまい、ローカルの時間になってくれません。
それを解決したのが下記。
ついでに不必要なFOR EACH ROWを取り除いてます。
CREATE TRIGGER hoge_modified AFTER UPDATE on hoge
BEGIN
UPDATE hoge SET modified = DATETIME("now","localtime") WHERE ID = old.ID;
END;
0 Comments.