• usersテーブル
    内のupdate_dateについて教えてください。 ...
  • riccaricca 
    usersテーブル内のupdate_dateについて教えてください。

    usersテーブルのupdate_dateを設定する時に、デフォルト値にCURRENT_TIMESTAMPを入力した場合、「属性」が空の状態となります。
    デフォルト値に何も指定しない場合には「属性」に「ou update CURRENT_TIMESTAMP」の値が自動で登録されます。
    (動画だとusersテーブルは属性なし、その他テーブルは属性有りでした。)

    「属性」への「ou update CURRENT_TIMESTAMP」の設定有・無で、レコードの登録・検索等の動作に違いが出るのか教えてください。
    (試しに属性が空の状態でレコードを追加すると、現在時刻が登録されましたので違いは無さそうには思えますが・・。)

    細かい内容で申し訳ありませんが、よろしくお願いいたします。
    回答 1

    返信者画像

    ウェブカツ!!コーチ 
    講師からの回答
    https://dev.mysql.com/doc/refman/5.6/ja/timestamp-initialization.html

    よく気付きましたね。
    そうです、usersテーブルが誤りになります。

    ON UPDATE CURRENT_TIMESTAMP

    は常にレコードのどこかのカラムが変更された場合にその変更日付が自動的に入るオプションです。

    updated_dateカラムはレコードの最新の更新日付用のカラムとして使いたいため、
    レコードのどこかのカラムが変更される度に自動で最新にしておけるものの方がいいですね。

    試しにオプションをつけたものとつけないテーブルで挿入したレコードのどこかのカラムを変更してみましょう。

    ricca 
    ご回答ありがとうございます。
    on Updateは自動更新を指していたのですね。盲点でした・・。

    phpMyAdminで確認したところ、属性に「ON UPDATE CURRENT_TIMESTAMP」が入っている場合は値を更新した場合に自動で日時が更新され、入っていな場合は日時が更新されませんでした。

    今後テーブルを作る際には自動更新のオプションを入れ忘れないよう注意していきたいと思います。