カラムの型を int(10) と指定した場合の 10 は、「ZEROFILL」オプション指定時の桁数を明示的に指示していることを意味する。
例えば以下のようなテーブルを作成して
CREATE TABLE tablename ( field_int10 int(10) zerofill NOT NULL, field_int5 int(5) zerofill NOT NULL );
INSERTクエリを発行
INSERT INTO tablename(field_int10, field_int5) VALUES (1, 1);
SELECT してみると
mysql> select * from tablename; +-------------+------------+ | field_int10 | field_int5 | +-------------+------------+ | 0000000001 | 00001 | +-------------+------------+ 1 row in set (0.00 sec)
field_int10 と field_int5 はそれぞれ指定した桁数で ZEROFILL されている。
ちなみに、桁数を指定せずにカラムを作成した場合は 10 が指定されたものとみなされる。
mysql> CREATE TABLE tablename (field_int int zerofill NOT NULL); mysql> INSERT INTO tablename(field_int) VALUES (1); mysql> select * from tablename; +------------+ | field_int | +------------+ | 0000000001 | +------------+ 1 row in set (0.00 sec)
これは、int型に格納できる最大値が unsigned指定で「4294967295」だから。「4294967295」は 10 桁である。
よって int(10) だの int(5) だの指定は、特に理由がない限りすべきでない。