ホームページ >データベース >mysql チュートリアル >MySQL STRICT モードで「フィールドにデフォルト値がありません」エラーが表示されるのはなぜですか?

MySQL STRICT モードで「フィールドにデフォルト値がありません」エラーが表示されるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-05 12:40:02928ブラウズ

Why am I getting the

MySQL STRICT モード エラー: 1364 'フィールドにデフォルト値がありません'

MAMP から Apache、MySQL、および PHP への最近の移行で、INSERT コマンドを実行する突然次のエラーが発生しました:

SQLSTATE[HY000]: General error: 1364 Field 'display_name' doesn't have a default value

この問題は、MySQL のデフォルト動作の変更が原因で発生しました。 MySQL バージョン 5.6.13 では、STRICT モードが有効になることが多く、これによりデータ検証のより厳格なルールが適用されます。その結果、デフォルト値のないフィールドは挿入中に空白のままにすることができなくなりました。

解決策

この問題を解決するには、MySQL STRICT モード設定を変更する必要があります。考えられる解決策は 2 つあります:

  1. 一時的な変更: MySQL コンソールで次のコマンドを実行します:

    SET GLOBAL sql_mode='';

    これにより、STRICT が一時的に無効になります。後続のすべてのクエリのモード。

  2. 永続的な変更: MySQL 構成ファイル (my.cnf) を編集します。 sql_mode 設定を見つけて、STRICT_ALL_TABLES またはその他の厳密モード オプションが存在しないことを確認します。見つかった場合は、それらのオプションをコメント アウトするか削除します。

これらの変更のいずれかを行った後、MySQL サーバーを再起動すると、INSERT コマンドが「フィールドにデフォルト値がありません」エラーが発生せずに正常に実行されるはずです。 .

以上がMySQL STRICT モードで「フィールドにデフォルト値がありません」エラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。