|
カテゴリ:データベース
既存のテーブルを眺めていて、ふと何かが引っかかった。
+----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+-------------+------+-----+---------+-------+ | column | bigint(20) | NO | PRI | NULL | | +----------------+-------------+------+-----+---------+-------+ ん? NOT NULLなのにDEFAULTがNULLだ。 MySQLリファレンスを読んでみる 4.1:値の制約 http://dev.mysql.com/doc/refman/4.1/ja/constraint-not-null.html 5.1:値の制約 http://dev.mysql.com/doc/refman/5.1/ja/constraint-invalid-data.html 5.1:デフォルト値について http://dev.mysql.com/doc/refman/5.1/ja/data-type-defaults.html どうやら様々な条件で自動で判断するらしい。 単一INSERTか、複数INSRTか。 NULLを明示的に入れようとしているのか、特に何も指定しないでDEFAULTに任せているのか。 MySQLの設定はどうなっているか。 等々... とりあえずNOT NULL制約があるカラムにはどう転んでもNULLは入らないっぽい? NOT NULLにDEFAULT NULLを設定する事はMySQL側も許容しているようだ。 個人的には許容しないで欲しい気がしなくもない・・・。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2010.03.18 00:51:01
コメント(0) | コメントを書く
[データベース] カテゴリの最新記事
|