sql >> Database >  >> RDS >> Mysql

mysql-fouten detecteren zonder het uit te voeren

UITLEG doet de truc als je MySQL 5.6 of hoger gebruikt.

explain update whatever;

Als de query in orde is, wordt het uitvoeringsplan weergegeven. Anders wordt de syntaxisfout geretourneerd.

Als je een mindere versie van MySQL gebruikt, zie ik een paar opties:

  1. De aanbevolen optie :Zorg dat u een testdatabase bij de hand hebt die uw productiedatabase weerspiegelt in ieder geval qua structuur . Laat het idealiter gevuld worden met testgegevens om te controleren of de query niet alleen syntactisch correct is; maar dat het werkt zoals verwacht .
  2. Voer de query uit in het kader van een TRANSACTIE dat wordt onmiddellijk teruggedraaid.
  3. Voer een versie van de zoekopdracht uit die enigszins is aangepast om overeen te komen met GEEN RIJEN.

Bijvoorbeeld:

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

Wordt:

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

Dus, als u 5.6 of hoger gebruikt, de EXPLAIN truc is netjes. Als dat niet het geval is, zijn opties 2 en 3 uit de lijst ook leuke (achtige) trucs. Maar over het algemeen zou je een ontwikkeling moeten bereiken server met uw in ontwikkeling toch vragen.




  1. mysql update tabel ajax per klasse

  2. Hoe Oracle Clob bij te werken met behulp van JDBC

  3. Postgres sql-querysyntaxisfout invoegen van phpPgAdmin

  4. Meer informatie over machtigingen op MySQL-tabelniveau