sql >> データベース >  >> RDS >> Mysql

デフォルト値でNOTNULL列にNULLを挿入する

    私の調査によると、それは「あなた」のものと「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モードに関係なく 。'

    そうは言っても、マニュアルの次のことも当てはまります。

    だから、心を取りなさい。ビジネスロジック(オブジェクト)でデフォルトを設定し、データレイヤーにその方向を指示させます。データベースのデフォルトは良い考えのように思えますが、それらが存在しなかった場合、あなたはそれらを見逃しますか?森に木が落ちたら...



    1. Oracleのネストされたテーブルの主キーと外部キー

    2. isqlのコマンド履歴

    3. MySQLとEntityFramework6

    4. Atomic UPDATE..PostgresのSELECT