如何计算文本文件中的SQL语句数?

时间:2011-04-30 04:03:45

标签: mysql sql parsing

我的程序从SQL文件恢复MySQL数据库。如果我想在程序中显示SQL执行的进度,我需要知道文件中SQL语句的数量。我怎么能在MySQL中这样做? (查询可能包含特定于mysql的多行插入语句)

我可以使用MySQL命令行工具或Python API。欢迎您为其他DBMS发布解决方案。

2 个答案:

答案 0 :(得分:4)

简单(简单)方法:将PRINT语句添加到SQL脚本文件中,显示progess消息。

优点(除了显而易见的'很难解析多语句结构')是你可以精确控制进度。例如,某些语句可能比其他语句运行时间更长,因此您需要对它们进行加权。

我不会想到执行的语句数量方面的进展。我所做的是打印出已经开始和完成特定任务的反馈,例如“同步表''''','更新存储过程X'等等

答案 1 :(得分:2)

天真的解决方案是计算文件中的分号数(或用作文件中分隔的任何其他字符)。

它通常运行良好,除非您插入的数据有许多分号,然后您必须开始处理SQL的实际解析,这是一个令人头疼的问题。