CURRENT_DATE デフォルト値パズル
MySQL では、DATE カラムのデフォルト値を CURDATE() または CURRENT_DATE に設定しようとすると、次のように見えるかもしれません。直感的な選択。ただし、そのようなテーブルを作成しようとすると、機能しません。この質問では、この動作が発生する理由について説明します。
原因は、MySQL の DEFAULT 句の制限にあります。公式ドキュメントで説明されているように:
「DEFAULT 句は列のデフォルト値を指定します。1 つの例外を除いて、デフォルト値は定数でなければなりません。関数や式は使用できません。」
したがって、現在の日付を取得する関数である CURRENT_DATE を DATE 列のデフォルトとして割り当てることはできません。
例外
このルールの例外は、CURRENT_TIMESTAMP 列タイプです。 TIMESTAMP 列の場合、デフォルト値として CURRENT_TIMESTAMP を指定すると、列に現在の日付と時刻が自動的に入力されます。
回避策
DATE 列の現在の日付と時刻を使用すると、トリガーを使用して、挿入および更新操作時にフィールドを自動的に更新できます。
以上がMySQL DATE カラムのデフォルト値として CURRENT_DATE を設定できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。