Mysql
 sql >> Baza danych >  >> RDS >> Mysql

wykrywać błędy mysql bez ich wykonywania

WYJAŚNIJ załatwi sprawę, jeśli używasz MySQL w wersji 5.6 lub nowszej.

explain update whatever;

Jeśli zapytanie jest prawidłowe, pokazuje plan wykonania. W przeciwnym razie zwraca błąd składni.

Jeśli używasz słabszej wersji MySQL, widzę kilka opcji:

  1. Zalecana opcja :Przygotuj testową bazę danych, która odzwierciedla Twoją produkcyjną bazę danych przynajmniej pod względem struktury . Idealnie byłoby wypełnić je danymi testowymi, aby sprawdzić, czy zapytanie jest nie tylko poprawne pod względem składniowym; ale że działa zgodnie z oczekiwaniami .
  2. Uruchom zapytanie w zakresie TRANSAKCJI który jest natychmiast cofany.
  3. Uruchom wersję zapytania, która została nieznacznie zmodyfikowana, aby dopasować BRAK WIERSZY.

Na przykład:

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

Staje się:

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

Tak więc, jeśli używasz wersji 5.6 lub nowszej, EXPLAIN sztuczka jest zgrabna. Jeśli nie, opcje 2 i 3 z listy również są fajnymi sztuczkami. Ale generalnie powinieneś zacząć rozwój serwer z Twoim w fazie rozwoju zapytania mimo to.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najszybszy sposób na zrzucenie obiektu słownika Pythona (dict) do tabeli MySQL?

  2. Jak skonfigurować i zalogować się jako użytkownik root w MySQL?

  3. Zmień typ kolumny z Date na DateTime podczas migracji ROR

  4. policz różnicę dat w godzinach za pomocą php i mysql

  5. Przechowywanie logiki biznesowej w bazie danych