ホームページ > データベース > mysql チュートリアル > MySQL が常に CURRENT_DATE/CURDATE() をデフォルト値として受け入れないのはなぜですか?

MySQL が常に CURRENT_DATE/CURDATE() をデフォルト値として受け入れないのはなぜですか?

Barbara Streisand
リリース: 2024-12-07 11:49:12
オリジナル
803 人が閲覧しました

Why Doesn't MySQL Always Accept CURRENT_DATE/CURDATE() as a Default Value?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート