文中有两种循环嵌套的写法,均可实现,已实际操作,可用!!
需求说明:统计数据库全部表字段内数据不为空的量。
统计结果如图:不为空的数据量为0,说明此字段数据都为null;
写法一:如图
说明:
1.通过mysql系统表,循环查找对应库内全部的表名,作为外层循环。将查找的表名赋给变量v_table_name;
2.通过外层循环获取的表名v_table_name,以表名为条件,查找对应表的字段;
3.逐个字段计算,数据不为空的数量,并将计算结果赋给变量v_column_cnt;(统计不为空的数据量使用动态sql的形式,拼接成sql语句并执行,直接用变量是行不通的,mysql不支持。)
4.最后将统计数据插入到目标表;
5.内层循环是查找某一张表内全部字段,并计算字段数量;外层循环是逐一查找表。
写法二:如图
说明:
跟写法一逻辑差不多,写法上没有分内外层循环,不同之处已用红框框上了。