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

MySQLはNOTNULL列を追加します

    MySQLでは、各列タイプに" 暗黙のデフォルト 「価値

    NOTNULL列がテーブルに追加された場合> 、および明示的なDEFAULTが指定されていない場合、暗黙のデフォルト値を使用して新しい列データにデータが入力されます。 DEFAULT値が指定されている場合も、同様のルールが適用されます。

    そのため、元のDDLは次と同じ結果を生成します。

    -- After this, data will be the same, but schema has an EXPLICIT DEFAULT
    ALTER TABLE t ADD c varchar(10) NOT NULL DEFAULT ''
    -- Now we're back to the IMPLICIT DEFAULT (MySQL stores NULL internally)
    ALTER TABLE t ALTER c DROP DEFAULT
    

    「厳密な」モード設定は、デフォルト値に依存するDMLステートメントに影響しますが、列が追加されたときの暗黙的なデフォルトの使用には影響しません。

    これがsqlfiddleの「証明」 です。 その厳密なモードは、ALTER TABLE..ADDステートメントには適用されません。

    これはMySQLの機能です。 SQL Serverなどの他のエンジンでは、このようなスキーマの変更に対して明示的なDEFAULT(またはNULL列)制約が必要です。




    1. mysql内の行を削除し、フォルダーから関連付けます

    2. PostgreSQLで2つのタイプのテーブルを作成します

    3. CodeigniterでmysqlANDORクエリを組み合わせる

    4. 理由/有用性は、OracleデータベースステートメントでENABLEキーワードを使用することです。