sql >> Databáze >  >> RDS >> Mysql

detekovat chyby mysql, aniž byste jej spustili

EXPLAIN funguje, pokud používáte MySQL 5.6 nebo vyšší.

explain update whatever;

Pokud je dotaz v pořádku, zobrazí se plán provádění. V opačném případě vrátí chybu syntaxe.

Pokud používáte nižší verzi MySQL, vidím několik možností:

  1. Doporučená možnost :Připravte si testovací databázi, která zrcadlí vaši produkční databázi alespoň ve struktuře . V ideálním případě jej naplňte testovacími daty, abyste ověřili, že dotaz není pouze syntakticky správný; ale že to funguje podle očekávání .
  2. Spusťte dotaz v rozsahu TRANSAKCE která se okamžitě vrátí zpět.
  3. Spusťte verzi dotazu, která je mírně upravena tak, aby odpovídala ŽÁDNÝM ŘÁDKŮM.

Například:

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

Stává se:

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

Pokud tedy používáte verzi 5.6 nebo vyšší, EXPLAIN trik je trefný. Pokud ne, možnosti 2 a 3 ze seznamu jsou také elegantní triky. Obecně byste ale měli narážet na vývoj server s vaším ve vývoji stejně.




  1. Použití COALESCE ke zpracování hodnot NULL v PostgreSQL

  2. Jak funguje funkce TRIM() v MySQL

  3. výpočet a zobrazení data jako „před sekundami“, „před minutami“, „před hodinami“ atd.

  4. 3 způsoby, jak získat práci Kroky úlohy SQL Server Agent (T-SQL)