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 = 5'是啥?