sql >> Base de Datos >  >> RDS >> Mysql

detectar errores mysql sin ejecutarlo

EXPLICAR hace el truco si está ejecutando MySQL 5.6 o superior.

explain update whatever;

Si la consulta es correcta, muestra el plan de ejecución. De lo contrario, devuelve el error de sintaxis.

Si está ejecutando una versión menor de MySQL, veo algunas opciones:

  1. La opción recomendada :Tenga lista una base de datos de prueba que refleje su base de datos de producción al menos en estructura . Idealmente, llénelo con datos de prueba para verificar que la consulta no solo sea sintácticamente correcta; pero que funciona como se esperaba .
  2. Ejecute la consulta en el ámbito de una TRANSACCIÓN que se revierte inmediatamente.
  3. Ejecute una versión de la consulta ligeramente modificada para que coincida con SIN FILAS.

Por ejemplo:

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

Se convierte en:

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

Entonces, si está ejecutando 5.6 o superior, EXPLAIN el truco es genial. Si no, las opciones 2 y 3 de la lista también son buenos trucos. Pero, por lo general, deberías encontrarte con un desarrollo servidor con su en desarrollo consultas de todos modos.