MySQL 查询表自增值使用情况

本文介绍了如何利用MySQL的sys.schema_auto_increment_columns视图来查看数据库中哪些表的AUTO_INCREMENT列及其状态,包括列名、数据类型、当前值和使用比例。适合理解数据库设计和管理 AUTO_INCREMENT 列的情况。

由于个人能力有限,文中可能存在错误,欢迎批评指正。

1.说明

这里用到 sys.schema_auto_increment_columns 视图。

备注:仅支持MySQL 5.6 或更高版本。

2.视图解析

mysql> desc sys.schema_auto_increment_columns; 
+----------------------+------------------------+------+-----+---------+-------+
| Field                | Type                   | Null | Key | Default | Extra |
+----------------------+------------------------+------+-----+---------+-------+
| table_schema         | varchar(64)            | NO   |     |         |       |
| table_name           | varchar(64)            | NO   |     |         |       |
| column_name          | varchar(64)            | NO   |     |         |       |
| data_type            | varchar(64)            | NO   |     |         |       |
| column_type          | longtext               | NO   |     | NULL    |       |
| is_signed            | int(1)                 | NO   |     | 0       |       |
| is_unsigned          | int(1)                 | NO   |     | 0       |       |
| max_value            | bigint(21) unsigned    | YES  |     | NULL    |       |
| auto_increment       | bigint(21) unsigned    | YES  |     | NULL    |       |
| auto_increment_ratio | decimal(25,4) unsigned | YES  |     | NULL    |       |
+----------------------+------------------------+------+-----+---------+-------+
10 rows in set (0.00 sec)

各列说明:

  • table_schema,库名,在该视图中,mysql、sys、 INFORMATION_SCHEMA、 performance_schema是被排除在外的。
  • table_name,表名,仅展示包含 AUTO_INCREMENT 列的表。
  • column_name,AUTO_INCREMENT列 的名称。
  • data_type,列的数据类型。
  • column_type,列的列类型,即数据类型加上可能的其他信息。例如,对于具有bigint(20) unsigned列类型的列,数据类型仅为bigint。
  • is_signed,列类型是否标记。
  • is_unsigned,列类型是否无符号。
  • max_value,列的最大允许值。
  • auto_increment,AUTO_INCREMENT 列的当前值。
  • auto_increment_ratio,列的已用值与允许值的比率。这表明有多少值序列被 “用完” 。

3.查询使用情况

mysql> select * from sys.schema_auto_increment_columns; 
+--------------+------------+-------------+-----------+-------------+-----------+-------------+------------+----------------+----------------------+
| table_schema | table_name | column_name | data_type | column_type | is_signed | is_unsigned | max_value  | auto_increment | auto_increment_ratio |
+--------------+------------+-------------+-----------+-------------+-----------+-------------+------------+----------------+----------------------+
| dbtest01     | t2         | id          | int       | int(11)     |         1 |           0 | 2147483647 |         917483 |               0.0004 |
| dbtest01     | t1         | id          | int       | int(11)     |         1 |           0 | 2147483647 |              1 |               0.0000 |
| dbtest01     | t3         | id          | int       | int(11)     |         1 |           0 | 2147483647 |              6 |               0.0000 |
| dbtest01     | t4         | id          | int       | int(11)     |         1 |           0 | 2147483647 |              4 |               0.0000 |
+--------------+------------+-------------+-----------+-------------+-----------+-------------+------------+----------------+----------------------+
4 rows in set (0.03 sec)

参考资料

【1】The schema_auto_increment_columns View

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值