由于个人能力有限,文中可能存在错误,欢迎批评指正。
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)
本文介绍了如何利用MySQL的sys.schema_auto_increment_columns视图来查看数据库中哪些表的AUTO_INCREMENT列及其状态,包括列名、数据类型、当前值和使用比例。适合理解数据库设计和管理 AUTO_INCREMENT 列的情况。
2268

被折叠的 条评论
为什么被折叠?



