これは、に記載されている変更です。 MySQL8.0.19リリースノート :
整数列の「長さ」は何の意味もありません。 int(11)
の列 int(2)
と同じです またはint(40)
。これらはすべて固定サイズの32ビット整数データ型です。それらは同じ最小値と最大値をサポートします。
整数列の「長さ」は、何年もの間MySQLの紛らわしい機能でした。これは、ストレージや値の範囲ではなく、表示幅に影響を与えるヒントにすぎません。実際には、ZEROFILL
を使用する場合にのみ重要です。 オプション。
mysql> create table t ( i1 int(6) zerofill, i2 int(12) zerofill );
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t set i1 = 123, i2 = 123;
Query OK, 1 row affected (0.00 sec)
mysql> select * from t;
+--------+--------------+
| i1 | i2 |
+--------+--------------+
| 000123 | 000000000123 |
+--------+--------------+
1 row in set (0.00 sec)
したがって、誤解を招く整数の「長さ」が廃止され、削除されたのは良いことです。それは何年もの間混乱を引き起こしてきました。