質問するログイン新規登録

回答編集履歴

2

調整

2026/06/01 10:01

投稿

yambejp
yambejp

スコア118469

answer CHANGED
@@ -1,5 +1,5 @@
1
- update_atの型次第ですね
2
- mysqlはもともとの1テーブルにtimestampを指定できるのは1カラムだけいう制約たはずです。
3
- create_atにtimestampを利用するとupdate_atはdatetimeになるのでデフォルト値はNULLで問題なかったのですが、いまの複数カラムtimestampが利用できる環境で仮にupdate_atをデフォルト値にNULLを指定すると、更新時に最新日付が設定さませんので、質問者さんの認識の「DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP」が必須です。
1
+ update_atの型次第ですね。mysqlはもともとの1テーブルにtimestampを指定できるのは1カラムだけという制約があったはずです。
2
+ create_atにtimestampを利用すとupdate_atはdatetimeになるでデフォルト値NULLで問題なかったのですが、いまの複数カラムtimestampが利用できる環境で仮にupdate_atをデフォルト値にNULLを指定する、更新時に最新日付設定されません。ちょと不親切です
3
+ そう考え質問者さんの認識の「DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP」が必須です。
4
4
  逆にupdate_atをdatetimeにしてデフォルト値をnullとしておけば、更新のないレコードを見分けやすいですね。(datetimeカラムは ON UPDATE CURRENT_TIMESTAMP属性でNULLも最新データに更新されます)
5
- とはいえ、create_atとupdate_atの値が同値であれば更新がないレコードだとわかるので、どちらが有利ということはないと思います。チームの運用パターンによるでしょう。
5
+ とはいえ、create_atとupdate_atの値が同値であれば更新がないレコードだとわかるので、どちらが有利ということはないと思います。チームの運用パターンによるでしょう。(つまり先輩がそうだといえばそれが答えです)

1

typo

2026/06/01 09:59

投稿

yambejp
yambejp

スコア118469

answer CHANGED
@@ -1,4 +1,4 @@
1
- update_atの次第ですね
1
+ update_atの次第ですね
2
2
  mysqlはもともとの1テーブルにtimestampを指定できるのは1カラムだけという制約があったはずです。
3
3
  create_atにtimestampを利用するとupdate_atはdatetimeになるのでデフォルト値はNULLで問題なかったのですが、いまの複数カラムtimestampが利用できる環境で仮にupdate_atをデフォルト値にNULLを指定すると、更新時に最新日付が設定されませんので、質問者さんの認識の「DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP」が必須です。
4
4
  逆にupdate_atをdatetimeにしてデフォルト値をnullとしておけば、更新のないレコードを見分けやすいですね。(datetimeカラムは ON UPDATE CURRENT_TIMESTAMP属性でNULLも最新データに更新されます)