ホーム > 未分類 > [MySQL] int(11)の11は最大桁数ではない

[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
カテゴリー: 未分類 タグ:
  1. とおりすがり
    2012 年 9 月 5 日 15:41 | #1

    『ERROR 1062 (23000): Duplicate entry ’2147483647′ for key 1』というエラーは、数字の範囲云々ではなくて、ユニークであるべきカラムに同じものをいれようとしたから表示されたのではないでしょうか

  1. 2010 年 3 月 4 日 00:42 | #1