MySQL における CURRENT_DATE/CURDATE() のデフォルト値の問題
開発者が直面する一般的なジレンマの 1 つは、CURRENT_DATE または CURDATE() 関数を次のように使用することです。 MySQL の DATE カラムのデフォルト値。期待に反して、これらの関数は意図したとおりに機能しません。
その理由は、MySQL のデフォルト値の制限にあります。通常、デフォルト値は関数や式ではなく、定数である必要があります。したがって、DATE 列のデフォルト値を NOW() または CURRENT_DATE に設定すると失敗します。
CREATE TABLE INVOICE( INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE )
[編集: デフォルト値としての CURRENT_DATE/CURDATE() のサポート]
MySQL バージョン 8.0.13 では、 DATE 列のデフォルト値としての CURRENT_DATE および CURDATE()。ただし、以前のバージョンはこの機能をサポートしていません。
TIMESTAMP 列の例外
ルールの注目すべき例外は、TIMESTAMP のデフォルト値として CURRENT_TIMESTAMP を使用できることです。 MySQL でサポートされている列。この側面の詳細については、MySQL ドキュメントを参照してください。
以上がMySQL が常に CURRENT_DATE/CURDATE() をデフォルト値として受け入れないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。