2011年11月2日水曜日

SQL Anywhere 行の作成日と更新日を自動でつける

CREATE TABLE文のカラムにDEFAULT句をつけると、そのカラムの値が省略された場合のデフォルト値を自動で入れることができる。SQL Anywhereの場合はこのDEFAULT句を使って行の作成日や更新日を自動でつけることができる。


current timestamp

行が挿入された時間

timestamp

行が挿入または更新された時間



例としてこのような定義のテーブルがあった場合・・・

CREATE TABLE mytable (
pkey varchar(10) NOT NULL,
value varchar(20),
created datetime NOT NULL DEFAULT current timestamp,
modified datetime NOT NULL DEFAULT timestamp,
PRIMARY KEY (pkey)
)

行の追加結果

INSERT INTO mytable (pkey,value) VALUES('1', 'abc');




pkeyvaluecreatedmodified
1abc2011-11-02 23:44:39.1792011-11-02 23:44:39.179

行の更新結果

UPDATE mytable SET value='xyz' WHERE pkey='1';




pkeyvaluecreatedmodified
1xyz2011-11-02 23:44:39.1792011-11-02 23:45:32.928

こんな感じで、modifiedのほうはUPDATE実行時間に変わりますが、createdのほうはINSERT実行時間のまま変わりません。

0 件のコメント:

コメントを投稿