mariadb存储过程,用来统计数据库下所有表行的总数

– 创建表mysqls_tables:

create table mysqls_tables(tab_owner varchar(100),tab_name varchar(100),tab_count int);

– 执行存储过程:

delimiter //

create or replace procedure p_get_table_row_count()
begin
truncate table mysqls_tables;
begin
    declare done int default 0;
    declare tbl_name varchar(255);
	      
	  declare cur cursor for
        select table_name
        from information_schema.tables
        where table_schema = '数据库名称';
    declare continue handler for not found set done = 1;
  
    open cur;
    read_loop: loop
        fetch cur into tbl_name;
        if done then
            leave read_loop;
        end if;

        set @sql = concat('select count(*) into @count from ', tbl_name);
        prepare stmt from @sql;-- 定义预处理语句
        execute stmt;-- 执行预处理语句
        deallocate prepare stmt;-- 释放资源
			  
				if tbl_name = 'mysqls_tables' then
				  select count(*) into @count 
					from  information_schema.tables 
					where table_schema = '数据库名称';
					set @count = @count;
				end if ;
				
        insert into mysqls_tables (
		        tab_owner, 
                tab_name, 
                tab_count)
        values (
				'数据库名称',
		        tbl_name, 
		        @count);
				commit;
    end loop;
		
    close cur;
		
    end;
		
end //

delimiter ;

– 查询mysqls_tables

select * from mysqls_tables;

运行版本10.6.14

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值