こちらのサイトを見てみてください。
http://dev.mysql.com/doc/refman/5.1/ja/numeric-types.html
INTは4バイトの符号付き整数です。BIGINTは8バイトの符号付き整数です。
INT(30)やBIGINT(30)は、ほとんど意味はありません。表示幅のヒントになっているだけで容量とは関係がありません。むしろZEROFULLオプションに影響します。
lang
1CREATE TABLE hoge( fuga INT(30) ZEROFILL );
2INSERT INTO hoge(fuga) VALUES (1234);
3SELECT fuga from hoge;
4
5+-------------------------------------------------------+
6| fuga |
7+-------------------------------------------------------+
8| 000000000000000000000000001234 |
9+-------------------------------------------------------+
多くのMySQLユーザーがCHAR(20)などと同じものと勘違いして、INT(20)をサイズ制限だと思い込んでしまうみたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。