日時データ型のデフォルト値として NOW() を設定する
データベース テーブルを作成するとき、列のデフォルト値を次のように設定すると有益です。一貫したデータ入力を保証します。 datetime データ型の場合、多くの場合、現在の時刻をデフォルト値として使用することが望ましいです。
Existing Table Modification Challenge
MySQL では、デフォルト値 NOW を設定します。既存の日時列の () は困難な場合があります。デフォルト値を NOW() に設定しようとしたときに発生したエラー メッセージは、これが無効なデフォルト値であることを示しています。
MySQL 5.6.5 以降のソリューション
幸いなことに、MySQL 5.6.5 では DATETIME データ型が導入されており、動的なデフォルト値が可能です。テーブルの作成時にデフォルト値を NOW() に設定するには、次の構文を使用します。
CREATE TABLE users ( registerDate DATETIME DEFAULT CURRENT_TIMESTAMP )
MySQL 5.6.5 より前のソリューション
MySQL バージョンの場合5.6.5 より前では、レコード変更時に日時値を自動的に更新するには、TIMESTAMP データ型を使用する必要があります。ただし、自動更新される TIMESTAMP フィールドはテーブルごとに 1 つだけ存在できることに注意してください。
CREATE TABLE users ( registerDate TIMESTAMP )
タイムスタンプ値が UPDATE で更新されないようにするには、DEFAULT CURRENT_TIMESTAMP を TIMESTAMP フィールド定義に追加します。
CREATE TABLE users ( registerDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP )
以上がMySQL の DateTime カラムのデフォルト値として NOW() を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。