MySQL で create table する時、
CREATE TABLE `mytable` (
`id` INT( 4 ) NOT NULL
)
とかって書く時の INT( 4 )が何を意味するかって話です。
今まで私は、最大桁数を表すと思ってました。でもMySQLのリファレンスを見てみると、
MySQL には、INT(4) のように、型の基本キーワードに続いて整数値の表示幅をかっこ内に指定できるオプションがあります。このオプションの表示幅の指定は、カラムに指定された幅より小さい幅を持つ値で表示の左側を埋める目的で使用されますが、そのカラムに格納できる値の範囲が制限されたり、そのカラムに指定された幅を超える幅を持つ値の桁数が制限されたりすることはありません。オプションの拡張属性 ZEROFILL と組み合せて使用した場合、デフォルトのスペースに代わってゼロが埋め込まれます。 たとえば、INT(5) ZEROFILL として宣言されたカラムの場合、値 4 は 00004 として取り出されます。なぬ!あくまでも表示する時の桁数であり、別に最大桁数を制限するものではないのね!!
引用元: http://dev.mysql.com/doc/refman/4.1/ja/numeric-types.html
おしまい◎