web-dev-qa-db-ja.com

MySQL#1364-フィールド 'column_name'にはデフォルト値がありません-DBに挿入できません

最近、MySQLデータベースを新しいサーバーに移動しました。これにより、以前にMySQLで経験したことのあるいくつかの問題が発生しました。テーブルの列は「デフォルト=>なし」に設定されており、データ型に応じてデフォルト値がテーブルで生成されています。しかし今、テーブルに挿入しようとすると、次のエラーメッセージが表示されます。「#1364-フィールド 'column_name'にデフォルト値がありません」と、テーブルに何も挿入されません。

「デフォルト」に独自の値を選択させるにはどうすればよいですか?

9
NIKO_B

フィールド 'column_name'(およびおそらく他のいくつか)が "NOT NULL"としてチェックされるため、データベースに明確に保存されません。これは、そのフィールドの値がNULL以外のものでなければならないことを意味します(NULL-データなし)

通常、フィールドをnull以外としてマークすると、一部のデータが常にフィールドに存在するようになります。ニーズに応じて、エラーをスローしないようにNULLとしてマークすることもでき、指定されたフィールドに何かを挿入する必要なくDBに保存されます。

2つのオプションがあることを意味します。

  1. フィールドをNULLとしてマークします(フィールドに値が必要かどうかを最初に確認します)。

    他の机 your_table列を変更your_fieldyour_field VARCHAR(250)NULL;

  2. フィールドにデフォルト値を追加して、挿入時にデータが提供されない場合は、定義したものを配置します。例えば:

    他の机 your_table列を変更your_fieldyour_field VARCHAR(250)NOT NULL DEFAULT 'some_default_value';

    そしてもちろん、フィールドタイプを変更するフィールドと一致させます。

11
AwesomeGuy