SQLiteでトリガー

項目について、新規追加した際にその作成日と、更新した際に更新日を自動設定しようと、トリガーを使いたいのだがよくわからん。

次のような、作成(登録)日のregistと更新日のmodifiedの要素を持つテーブルを作成し、

CREATE TABLE info (id INTEGER PRIMARY KEY, name TEXT, regist DATETIME, modified DATETIME);

さらに、次の項目追加時のトリガーを作成する(保存時にエラーになる問題のため一時的にSE_T, WHER_E, FRO_M, INT_Oなどと表記してます。了承下さいm(__)m)。

CREATE TRIGGER info_trig_regist AFTER INSERT ON info
BEGIN
  UPDATE info SE_T regist=datetime('now', 'localtime') WHER_E id=NEW.id;
END;

追加時に NEW.id を持つエントリの regist 項目を更新するようにしていて、とりあえずはこれで動作する

sqlite> INSERT INT_O info (name) VALUES ('Taro');
sqlite> SELECT * FRO_M info;
1|Taro|2009-12-11 15:16:28|

のだが、更新時のトリガーをさらに次のように設定するとおかしなことになってしまう。

CREATE TRIGGER info_trig_modified AFTER UPDATE ON info
BEGIN
  UPDATE info SE_T modified=datetime('now', 'localtime') WHER_E id=OLD.id;
END;

確かに、これで更新時の更新日付は自動設定される、

sqlite> UPDATE info SE_T name='Jiro' WHER_E id=1;
sqlite> SELECT * FRO_M info;
1|Jiro|2009-12-11 15:16:28|2009-12-11 15:17:36

が、新規追加時のトリガー中で更新を行っているため、エントリ追加時に更新トリガーも起動され、作成日だけでなく更新日も設定されてしまう。

sqlite> INSERT INT_O info (name) VALUES ('Yoko');
sqlite> SELECT * FRO_M info;
1|Jiro|2009-12-11 15:16:28|2009-12-11 15:17:36
2|Yoko|2009-12-11 15:18:18|2009-12-11 15:18:18

もう少しトリガーを研究というか、工夫しないといけないようだ(続く)。

リンク
次の方は WHEN を使って new.id=0 のエントリを、まず削除して、それから new のデータを持つエントリをトリガー中で INSERT しているが、そちらならいいのかな?

その他もろもろ。

次の例では、同じテーブルについて INSERT トリガーで日付を UPDATE してるんで、その際には UPDATE トリガーも呼ばれちゃってるんじゃないかなー。

Webイラスト

次のような記事を見つけた。

どこかで見たことがある絵だと思ったら、著者の兎本 幸子さん(ブログ)の絵柄に惹かれて以前にイラスト本を買っていたのだった。

さらに何冊か著書があるようだ。

それはそれとして、件の記事ではイラストを実際に描いている様子の動画がTEDIA Movieとかいうサービスへのリンクとして張られている。動画本体はYouTubeへアップされているようで、YouTubeの埋め込み再生となっている(こうするんだったら、記事中にYouTubeへの動画で埋め込んでもらったほうがようかったような…←最後の第4回は記事中への埋め込みになってました)。

まとめて眺めたかったんでリンクを抜いてきてみた。これらの動画に関してはTEDIAでの動画IDとYouTubeのものは共通らしい(←なのでTEDIAへの動画リンクがあったらYouTubeの埋め込みに強制的にGreaseMonkeyあたりで書き換えてもいいのかもね?)。 Reeeead the rest of this entry »

YouTube用Greasemonkeyスクリプト

自動再生のオフとか

PostScript関連

久しぶりに検索してみた。自身のページへのリンクもありますが。

WordPressの一覧件数

トップページでの記事内容表示は5件としている
200912071508
のだが,こうすると月や年でのただのタイトル一覧でも同じく5件となってしまうようだ.
200912071507
(本来は2009年8月分は7件(!)はある.年単位での表示でも5件ずつとなってしまう)

記事内容とは別でタイトル一覧の件数も指定できるようにならないかな?

[参考になりそうなリンク]