- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定のフィールドが更新されたときだけ日時を更新する)
特定のフィールドが更新されたときだけ日時を更新する
このQ&Aのポイント
- フィールドのデータが更新された場合に、特定のフィールドの日時を更新する方法について質問です。
- テーブルを分けずに、特定のフィールドだけを対象に日時を更新する方法について教えてください。
- フィールドのデータが更新された時に、特定のフィールドの日時だけを更新したいですが、テーブルを分けずに実現する方法はありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
現在on update句で行っている部分をUPDATEトリガーで行うようにすれば実現は可能かと思います。 UPDATEトリガーの中では、target列の更新前と後の値を比較して違ったら更新日時を更新するというロジックを組めばよいでしょう。 ちなみにこんな感じになると思います。 BEGIN IF NEW.target != OLD.target THEN SET NEW.update_day = now(); END IF; END 「MySQL UPDATEトリガー」などで検索すれば用例はたくさんありますので、試してみてください。
その他の回答 (1)
- hogya
- ベストアンサー率67% (49/73)
回答No.2
TIMESTAMP型の範囲は2037年までだったと思います。(64bit環境でもそうなのかは確認していません) あとはDATETIME型にした場合に既存の日数計算等のコーディングに影響がないかどうか等も考慮して決めればよいかと思います。
質問者
お礼
分かりました。有難うございました。
お礼
有難うございます。update_dayをtimestamp型のままで、 ・default CURRENT_TIMESTAMP ・on update CURRENT_TIMESTAMP こちらをなくしました。それで思うようにいきました。 容量が少ないのでtimestamp型を使っていますが、datetime型の方がよいですか。