2011年11月2日水曜日

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

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


current timestamp

行が挿入された時間

timestamp

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



例としてこのような定義のテーブルがあった場合・・・
  1. CREATE TABLE mytable (  
  2.     pkey      varchar(10) NOT NULL,  
  3.     value     varchar(20),  
  4.     created   datetime NOT NULL DEFAULT current timestamp,  
  5.     modified  datetime NOT NULL DEFAULT timestamp,  
  6.     PRIMARY KEY (pkey)  
  7. )  

行の追加結果
  1. INSERT INTO mytable (pkey,value) VALUES('1''abc');  




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

行の更新結果
  1. 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 件のコメント:

コメントを投稿