MySQL的auto_increment(整型)的限制是多少?

MySQL的auto_increment(整型)的限制是多少?

auto_increment整数的限制取决于列数据类型。如下所示:

TINYINT 类型范围为127
UNSIGNED TINYINT 类型范围为255
SMALLINT 类型范围为32767
UNSIGNED SMALLINT 类型范围为65535
MEDIUMINT 类型范围为8388607
UNSIGNED MEDIUMINT 类型范围为16777215
INT 类型范围为2147483647
UNSIGNED INT 类型范围为4294967295
BIGINT 类型范围为9223372036854775807
UNSIGNED BIGINT 类型范围为18446744073709551615

让我们以TINYINT为例。如果您给出超过127,则MySQL会出现错误。

现在,让我们先创建一张表。创建表的查询语句如下。这里,ID是自动增量的:

mysql> create table LimitOfAutoIncrement
-> (
-> Id TINYINT NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.68 sec)

只插入127条记录,这是TINYINT的auto_increment限制。查询语句如下:

mysql> insert into LimitOfAutoIncrement values(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),();
Query OK, 127 rows affected (0.20 sec)
Records: 127 Duplicates: 0 Warnings: 0

使用select语句显示表中的所有记录。查询如下所示:

mysql> select *from LimitOfAutoIncrement;

以下是输出内容:

+-----+
| Id  |
+-----+
|   1 |
|   2 |
|   3 |
|   4 |
|   5 |
|   6 |
|   7 |
|   8 |
|   9 |
|  10 |
...
| 127 |
+-----+
127 rows in set (0.00 sec)

现在您不能为auto_increment插入记录。如果尝试,则会生成错误:

mysql> insert into LimitOfAutoIncrement values();
ERROR 1062 (23000): Duplicate entry '127' for key 'PRIMARY'

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程