Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql-Fehler erkennen, ohne es auszuführen

ERKLÄREN funktioniert, wenn Sie MySQL 5.6 oder höher verwenden.

explain update whatever;

Wenn die Abfrage in Ordnung ist, wird der Ausführungsplan angezeigt. Andernfalls wird der Syntaxfehler zurückgegeben.

Wenn Sie eine niedrigere Version von MySQL ausführen, sehe ich einige Optionen:

  1. Die empfohlene Option :Halten Sie eine Testdatenbank bereit, die Ihre Produktionsdatenbank zumindest in der Struktur widerspiegelt . Lassen Sie es idealerweise mit Testdaten auffüllen, um zu überprüfen, ob die Abfrage nicht nur syntaktisch korrekt ist; aber dass es erwartungsgemäß funktioniert .
  2. Führen Sie die Abfrage im Bereich einer TRANSAKTION das wird sofort zurückgesetzt.
  3. Führen Sie eine leicht modifizierte Version der Abfrage aus, damit sie mit KEINEN ZEILEN übereinstimmt.

Zum Beispiel:

update table set col1 = @val1 where col2 = @val2;

Wird:

update table set col1 = @val1 where (col2 = @val2) and 1=0;

Wenn Sie also 5.6 oder höher ausführen, wird die EXPLAIN Trick ist ordentlich. Wenn nicht, sind die Optionen 2 und 3 aus der Liste auch nette (ish) Tricks. Aber Sie sollten im Allgemeinen eine Entwicklung treffen Server mit Ihrem in Entwicklung trotzdem abfragen.