私の調査によると、それは「あなた」のものと「MySQL」のものの両方である可能性があります。 SHOW CREATE TABLE table_name;
を使用してテーブル定義を確認してください 。 NOT NULL
で定義されたフィールドに注意してください 。
MySQL 5.6リファレンスマニュアル:13.2.5INSERT構文 状態:
これは、使用しているSQLモードが重要ではないことを意味します。 単一行を実行している場合 INSERT
(サンプルコードによる)そしてNULL
を挿入する NOT NULL
で定義された列に値を入力します 、動作しないはずです。
同じように、皮肉なことに、値リストから値を単純に省略した場合、MySQLのマニュアルには次のように記載されており、SQLモードは重要です この場合:
したがって、あなたは勝つことはできません!;-)冗談です。やるべきことは、そのNOT NULL
を受け入れることです MySQLテーブルフィールドでは、単一行のINSERT
を実行している間、フィールドにNULL値を受け入れないことを意味します。 、SQLモードに関係なく 。'
そうは言っても、マニュアルの次のことも当てはまります。
だから、心を取りなさい。ビジネスロジック(オブジェクト)でデフォルトを設定し、データレイヤーにその方向を指示させます。データベースのデフォルトは良い考えのように思えますが、それらが存在しなかった場合、あなたはそれらを見逃しますか?森に木が落ちたら...