我的程序从SQL文件恢复MySQL数据库。如果我想在程序中显示SQL执行的进度,我需要知道文件中SQL语句的数量。我怎么能在MySQL中这样做? (查询可能包含特定于mysql的多行插入语句)
我可以使用MySQL命令行工具或Python API。欢迎您为其他DBMS发布解决方案。
答案 0 :(得分:4)
简单(简单)方法:将PRINT
语句添加到SQL脚本文件中,显示progess消息。
优点(除了显而易见的'很难解析多语句结构')是你可以精确控制进度。例如,某些语句可能比其他语句运行时间更长,因此您需要对它们进行加权。
我不会想到执行的语句数量方面的进展。我所做的是打印出已经开始和完成特定任务的反馈,例如“同步表''''','更新存储过程X'等等
答案 1 :(得分:2)
天真的解决方案是计算文件中的分号数(或用作文件中分隔的任何其他字符)。
它通常运行良好,除非您插入的数据有许多分号,然后您必须开始处理SQL的实际解析,这是一个令人头疼的问题。