Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

detectar erros do mysql sem executá-lo


EXPLICAR funciona se você estiver executando o MySQL 5.6 ou superior.
explain update whatever;

Se a consulta estiver ok, mostra o plano de execução. Caso contrário, ele retorna o erro de sintaxe.

Se você estiver executando uma versão inferior do MySQL, vejo algumas opções:
  1. A opção recomendada :Tenha um banco de dados de teste pronto que espelhe seu banco de dados de produção pelo menos na estrutura . O ideal é que ele seja preenchido com dados de teste para verificar se a consulta não está apenas sintaticamente correta; mas que funciona como esperado .
  2. Execute a consulta no escopo de uma TRANSACTION que é imediatamente revertido.
  3. Execute uma versão da consulta ligeiramente modificada para corresponder a NO ROWS.

Por exemplo:
update table set col1 = @val1 where col2 = @val2;

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

Portanto, se você estiver executando a versão 5.6 ou superior, o EXPLAIN truque é legal. Caso contrário, as opções 2 e 3 da lista também são truques legais. Mas, em geral, você deve atingir um desenvolvimento servidor com seu em desenvolvimento consultas de qualquer maneira.