我正在製作一個簡單的工具,它將獲得一串MySQL命令並運行它(依次在多個數據庫服務器上運行)。我相信用戶是明智的,但出現錯誤,我正在尋找一種方法來防止基本的錯別字:如何檢查MySQL查詢是否有效而不執行?
有沒有辦法在運行時驗證(相對簡單)MySQL查詢,重新語法正確?
我不是在尋找語義的正確性,例如表名或加入適用性;就像SQL查詢的拼寫檢查一樣。
換句話說,
SELECT * FROM x;
或
INSERT INTO x SET id=1,bar="foo";
將被標記爲有效,而任何這些不會:
SELECT FROM x;
SECLET * RFOM x;
ISNETR INTO x SET id=1;
HJBGYGCRYTCY;
對於SELECT
S,我可以彎曲EXPLAIN
根據我的需要 - 運行EXPLAIN SELECT (...)
並注意錯誤,但是有沒有是否也檢查其他命令?
我正在尋找一種在腳本執行之前檢查查詢的快速方法。編寫一個解析器可能會過度 - 如果它在第一臺服務器上出現故障,它就會退出並顯示一個錯誤(據說腳本用戶(系統管理員)已經足夠清楚瞭解他們在做什麼)。 – Piskvor 2008-12-18 14:09:40
+1準備。這是我知道的唯一方法。 – willasaywhat 2008-12-18 20:25:19