将常用的sql 封装在存储过程中,简单调用即可,不需要每次复制sql再执行;
drop procedure if EXISTS p_db_info;
delimiter;;
create PROCEDURE p_db_info(in db varchar(10))
begin
IF db != '' then
select
count(DISTINCT table_name) as tcnt
,sum(table_rows) as rcnt
from information_schema.tables --
where table_schema = db; -- 直接引用参数
else
select
table_schema -- 数据表所属的数据库名
,count(distinct table_name) as tcnt
,sum(table_rows) as rcnt -- Table_rows:表里所存多少行数据
from information_schema.tables --
group by table_schema
order by rcnt desc;
end if;
END;;
delimiter ;
call p_db_info('');