マニュアル を参照する 、
明示的なDEFAULT句がないNOTNULL列のデータ入力の場合、INSERTまたはREPLACEステートメントに列の値が含まれていないか、UPDATEステートメントが列をNULLに設定すると、MySQLはその時点で有効なSQLモードに従って列を処理します。
- 厳密なSQLモードが有効になっていない場合、MySQLは列を列データ型の暗黙的なデフォルト値に設定します。
- strictモードが有効になっている場合、トランザクションテーブルでエラーが発生し、ステートメントがロールバックされます。非トランザクションテーブルの場合、
エラーが発生しますが、複数行のステートメントの2行目以降でこれが発生した場合、前の行が挿入されます。
それで、あなたの質問は、さまざまな列データ型の暗黙のデフォルト値は何ですか?どうぞ:
暗黙のデフォルトは次のように定義されます:
- 数値型の場合、デフォルトは0です。ただし、AUTO_INCREMENT属性で宣言された整数型または浮動小数点型の場合、デフォルトはシーケンスの次の値です。
- TIMESTAMP以外の日付と時刻のタイプの場合、デフォルトはタイプに適切な「ゼロ」値です。テーブルの最初のTIMESTAMP列の場合、デフォルト値は現在の日付と時刻です。セクション10.3「日付と時刻のタイプ」を参照してください。
- ENUM以外の文字列タイプの場合、デフォルト値は空の文字列です。 ENUMの場合、デフォルトは最初の列挙値です。