2011-04-30 54 views
1

我的程序從SQL文件恢復MySQL數據庫。如果我想在程序中顯示SQL執行的進度,我需要知道文件中SQL語句的數量。我如何在MySQL中執行此操作? (這些查詢可能由mysql特定的多行插入語句組成)如何統計文本文件中的SQL語句數量?

我可以使用MySQL命令行工具或Python API。歡迎您爲其他DBMS發佈解決方案。

+1

根據你的SQL數據,'語句'可能很簡單或者很複雜,有很多數據或沒有......所以你的進度指示可能不是很一致。 – Henry 2011-04-30 04:06:11

+0

我很清楚這種基於查詢計數的方法的侷限性,但除此之外,您將如何以%或進度條顯示進度? – Imran 2011-04-30 07:21:29

回答

4

簡單(簡單)的方法:將PRINT語句添加到您的SQL腳本文件中,顯示progess消息。

優點(除了顯而易見的'它很難解析多語句結構')是你可以精確控制進度。例如,某些語句可能比其他語句運行時間要長,因此您需要對它們進行加權。

我不會想到在執行的語句數方面取得進展。我所做的是打印反饋,具體任務已啓動並完成,如'同步表'等等','更新存儲過程X'等

2

幼稚的解決方案是計算文件中分號的數量(或在文件中用作分隔符的任何其他字符)。

它通常工作得很好,除非你插入的數據有很多分號,然後你必須開始處理SQL的實際解析,這是一個頭痛的問題。

相關問題