抓取每张表的行数

show table status 命令比较宽, 不能选择指定的列,而且“rows” 对 InnoDB 时数据也不正确。

用 information_schema 里的数据就比较正确,姿势:

MariaDB [db]> select table_name,table_rows from information_schema.tables where table_schema=database() order by 2;

information_schema.tables 这张表的表结构如下:

找到空表的 auto_increment 大于 1 的表,
select table_name,auto_increment from information_schema.tables where table_schema=database() and auto_increment>1 and table_rows=0;

导出表名后,用 awk 生成 alter table table_name auto_increment=1 ; 的 SQL 执行即可。

作者: 甬洁网络

--移动互联网&物联网技术提供商