I increased the int(250) …
No you didn't: for all integer types, that value does not increase the field size – only the display width if the field also has the ZEROFILL
flag.
CREATE TABLE `ints` (
`tinyint1` tinyint(1) unsigned zerofill DEFAULT NULL,
`tinyint4` tinyint(4) unsigned zerofill DEFAULT NULL,
`int11` int(11) unsigned zerofill DEFAULT NULL,
`bigint30` bigint(30) unsigned zerofill DEFAULT NULL
);
INSERT INTO ints VALUES (1, 1, 1, 1);
INSERT INTO ints VALUES (5, 5, 5, 5);
INSERT INTO ints VALUES (10, 10, 10, 10);
INSERT INTO ints VALUES (100, 100, 100, 100);
INSERT INTO ints VALUES (10212072467628961, 10212072467628961, 10212072467628961, 10212072467628961);
ERROR 1264 (22003): Out of range value for column 'tinyint1' at row 1
INSERT INTO ints VALUES (0, 0, 0, 10212072467628961);
SELECT * FROM ints;
+----------+----------+-------------+--------------------------------+
| tinyint1 | tinyint4 | int11 | bigint30 |
+----------+----------+-------------+--------------------------------+
| 1 | 0001 | 00000000001 | 000000000000000000000000000001 |
| 5 | 0005 | 00000000005 | 000000000000000000000000000005 |
| 10 | 0010 | 00000000010 | 000000000000000000000000000010 |
| 100 | 0100 | 00000000100 | 000000000000000000000000000100 |
| 0 | 0000 | 00000000000 | 000000000000010212072467628961 |
+----------+----------+-------------+--------------------------------+
5 rows in set (0.01 sec)
As the other guys have suggested, you have to use a different integer type:
http://dev.mysql.com/doc/refman/5.0/en/integer-types.html
The only way to "increase" the effective range is by using the UNSIGNED
flag and omitting all negative values – but that's technically a shifting of the range, not an increase. Technically.