2014-02-06 52 views
1

目前我正在開發一個自動化構建過程,它也會執行一些數據庫更改。這可能是任何類型的語句(ALTER; SELECT; UPDATE; CREATE; DROP ...) 如果在這些SQL腳本中存在任何語法錯誤,我想盡早地拒絕構建。搜索工具進行檢查(我的)SQL語法

在網上搜索幾個小時後,我終於決定要求編程volk尋求幫助。

我真的不想自己開發這個工具。我自己開發它意味着維護它,甚至會在某些情況下冒數據泄露的風險。 (如果我需要執行一個語句並且無法回滾)

我在尋找的是一個仍然保持的(開源)工具。完美的是在某些Linux發行版的存儲庫中找到這個工具。

有沒有人知道這樣的工具?

我已經找到了一些在線的SQL Checker,但我不想發送內部數據到外部網絡。編輯: 也許我需要提供一些額外的背景信息。構建過程將由一個持續集成系統使用。我想要確保提交的sql文件是可執行文件。因此,我想向buildscript添加一個ant任務,如「testScript」,它將採用SQL腳本,檢查語法並在失敗時失敗。 例如,它可能發生在開發人員完成語句並將複製粘貼到SQL腳本中,但只是選擇了「TER TABLE」而不是「ALTER TABLE」。我正在搜索的語法檢查程序應該會發現這些簡單的錯誤類型,這會在稍後的階段中使構建失敗,並導致構建失敗。在最好的情況下,它可以輸出錯誤的陳述和安全的位置來糾正錯誤。

+0

你可以在這裏查看相同問題的答案http://stackoverflow.com/questions/956507/how-can-i-check-the-sql-syntax-in-a-sql-file –

+0

我看到了這些答案,但這些都不符合我的問題。交易:開發自己的測試工具|在線檢查器:數據輸出到專用網絡|使用基本詞法分析器:開發工具我自己 –

+0

如果您的sql語句分別位於各自的行中,則可以通過運行一系列簡單的命令來驗證sql語法。我添加了一個解釋如何在這裏的答案:http://stackoverflow.com/a/37019893/28037 – culix

回答

0

看看dbForge Studio for MySQL,它有一個code complition feature自動SQL語法檢查功能。

打開新的SQL文檔,編寫一些代碼或打開現有的SQL文件,如果有錯誤,您將看到語法錯誤。

+0

是否有可能使用此檢查作爲構建過程的一部分?例如調用wouldbforge -checksql test.sql'? –

+0

目前,語法檢查不支持命令行。您可以在功能用戶語音頁面上建議此功能 - http://devart.uservoice.com/forums/77293-dbforge-studio-for-mysql – Devart