2016-09-24 19 views
2

最近私のMySQLデータベースを新しいサーバーに移動しました。 私のテーブルの列は "Default => None"に設定されており、私のテーブルはデータ型に応じてデフォルト値を生成しています。しかし、今私はテーブルに挿入しようとすると、私はこのエラーメッセージが表示されます: "#1364 - フィールド 'column_name'はデフォルト値を持っていない"し、何もテーブルに挿入されていません。フィールド 'column_name'にデフォルト値がありません - DBに挿入できません

"デフォルト"を自分の値にするにはどうすればよいですか?

+1

多分これはあなたがオンになっている[mysqlの#1363](http://stackoverflow.com/questions/15438840/mysql-error-1364-field-doesnt-have-a-default-values) – winiardesign

+0

を助けます今すぐ新しいサーバー。それは異なる設定を持っています。最も顕著なのは、上記のdupe target close reasonに見られる 'STRICT_TRANS_TABLES'です。 – Drew

答えて

2

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

通常、フィールドにはデータが常にフィールドに存在することを確認するための素晴らしい方法です。必要に応じて、NULLとしてマークすることもできます。これにより、エラーが発生することはなく、指定されたフィールドに何も挿入する必要なしにDBに保存されます。 (自分のフィールドは、いくつかの値かどうかであることが要求される場合は、最初のチェック)NULLとして

  1. マークを自分フィールド:

    は、それはあなたが2つのオプションがあることを意味します。

    ALTER TABLE your_table CHANGE COLUMN your_fieldyour_field VARCHAR(250)NULL;

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

    ALTER TABLE your_table CHANGEのCOLUMN your_fieldyour_field VARCHAR(250)NOT NULL DEFAULT 'some_default_value'。

    また、あなたのフィールドタイプを変更するフィールドに合わせてください。

+0

あなたの答えをありがとう:)私は今なぜ私は前にする必要がなかったときにデフォルト値を定義する必要がありますか?それをオフにする方法はありますか? –

+0

mysqlの古いバージョンであったか、別のGUIツールを使ってテーブルを作成しました。デフォルトではフィールドがNULLになっていました。 フィールドをNULLとマークすると、デフォルト値や任意の種類の値を挿入する必要はありません。 :) – Imaginaroom

関連する問題