mysql AUTO_INCREMENT 能设置区间吗?即有一个自增最小值和最大值,最大值自己指定不是该类型的最大值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql AUTO_INCREMENT 能设置区间吗?即有一个自增最小值和最大值,最大值自己指定不是该类型的最大值相关的知识,希望对你有一定的参考价值。

mysql AUTO_INCREMENT 能设置区间吗?即有一个自增最小值和最大值,最大值自己指定不是该类型的最大值

可以在建表以后.
通过
ALTER TABLE 表名 AUTO_INCREMENT = 最小值;
来进行设置.

最大值只有考 列的 数据类型来限制了.

mysql> CREATE TABLE test_create_tab2 (
-> id INT AUTO_INCREMENT,
-> val VARCHAR(10),
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 2 |
+----+
1 row in set (0.00 sec)

mysql> select * from test_create_tab2;
+----+---------+
| id | val |
+----+---------+
| 1 | NO id |
| 2 | NO id 2 |
+----+---------+
2 rows in set (0.00 sec)

mysql> ALTER TABLE test_create_tab2 AUTO_INCREMENT = 100;
Query OK, 2 rows affected (0.25 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id N');
Query OK, 1 row affected (0.03 sec)

mysql> select * from test_create_tab2;
+-----+---------+
| id | val |
+-----+---------+
| 1 | NO id |
| 2 | NO id 2 |
| 100 | NO id N |
+-----+---------+
3 rows in set (0.00 sec)
参考技术A =1568800

mysql中auto_increment(整数)的限制是多少

【中文标题】mysql中auto_increment(整数)的限制是多少【英文标题】:What is the limit of auto_increment (integer) in mysql 【发布时间】:2012-07-01 03:24:48 【问题描述】:

我有一个 mysql 数据库,我在其中使用 auto_increment(integer),你能告诉我它可以递增到什么整数。如何增加 auto_increment 的限制?

【问题讨论】:

【参考方案1】:

auto_increment 列 is the size of the column 的限制:

为 AUTO_INCREMENT 列使用足够大的整数数据类型来保存您需要的最大序列值。当列达到数据类型的上限时,下一次生成序列号的尝试失败。例如,如果您使用 TINYINT,则允许的最大序列号为 127。对于 TINYINT UNSIGNED,最大为 255。

limits of the integer types 是:

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

【讨论】:

【参考方案2】:

整数可以高达 2147483647。如果未签名,则可以是 4294967295。

See this chart 用于所有整数值。

【讨论】:

我们可以使用“BIGINT (9223372036854775807)”来增加限制吗? 如果您每秒进行 10 亿次增量,那么您在 BIGINT 中就有足够的时间进行 292 年的更新。如果你有一个三节点 galera 集群,这个数字会下降到区区 97 年。 @opentokix 只是出于好奇,您为什么将其划分为集群中的节点数? ? @AldoB 当您使用 galera mariadb 集群时,它将增加节点数。当您执行“inc”时,nodeA 将获得 1 4 nodeB 将获得 2 5 而 nodeB 将获得 3 6 依此类推

以上是关于mysql AUTO_INCREMENT 能设置区间吗?即有一个自增最小值和最大值,最大值自己指定不是该类型的最大值的主要内容,如果未能解决你的问题,请参考以下文章

如何在Mysql中为现有数据设置auto_increment起始值[重复]

MySQL AUTO_INCREMENT 设置一直未设置

Mysql:创建表查询中的'AUTO_INCREMENT = 5'是啥?

mysql中auto_increment(整数)的限制是多少

MySQL基础之 AUTO_INCREMENT

MySQL进阶14--标识列(自增序列/auto_increment)--设置/展示步长--设置/删除标示列