MySQL のタイムスタンプ型の自動更新の設定方法

MySQLでは、以下の2通りの方法で時刻フィールドの自動更新を設定できます。

  1. テーブルの作成時に、自動更新が必要なタイムスタンプフィールドに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 フィールドが自動的に現在時刻に更新されます。

  1. 更新時に時間のフィールドを自動更新するためのトリガーを作成できます。 例えば:
CREATE TRIGGER update_time_trigger
BEFORE UPDATE ON my_table
FOR EACH ROW
SET NEW.updated_at = CURRENT_TIMESTAMP;

提示の例では、更新前にUpdated_atフィールドが現在の時刻に設定されるトリガーが、my_tableテーブルのレコードを更新するたびに発生します。

いずれの方法を用いても、時刻欄の自動更新を実現できます。適する方法は各人の好みやニーズによります。

bannerAds