[MySQL] int(11)の11は最大桁数ではない
危なかった。勘違いしてた。
int(11)の「11」って表示桁数を揃えるためのものであって、格納できるのはあくまで4バイトなんですね。
参照: 本家ドキュメント
試してみる。
mysql> create table int_test (id int(11) primary key); Query OK, 0 rows affected (0.04 sec) mysql> desc int_test; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | +-------+---------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> insert into int_test values(2147483647); Query OK, 1 row affected (0.00 sec) mysql> insert into int_test values(2147483648); ERROR 1062 (23000): Duplicate entry '2147483647' for key 1 |