MySQL のタイムスタンプ型の自動更新の設定方法
MySQLでは、以下の2通りの方法で時刻フィールドの自動更新を設定できます。
- テーブルの作成時に、自動更新が必要なタイムスタンプフィールドにDEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMPを設定できます。例:
CREATE TABLE my_table (
id INT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
上記の例では、レコードを更新するたびに、updated_at フィールドが自動的に現在時刻に更新されます。
- 更新時に時間のフィールドを自動更新するためのトリガーを作成できます。 例えば:
CREATE TRIGGER update_time_trigger
BEFORE UPDATE ON my_table
FOR EACH ROW
SET NEW.updated_at = CURRENT_TIMESTAMP;
提示の例では、更新前にUpdated_atフィールドが現在の時刻に設定されるトリガーが、my_tableテーブルのレコードを更新するたびに発生します。
いずれの方法を用いても、時刻欄の自動更新を実現できます。適する方法は各人の好みやニーズによります。