Mysql
 sql >> база данни >  >> RDS >> Mysql

открива mysql грешки, без да го изпълнява

ОБЯСНЯВАНЕ работи, ако използвате MySQL 5.6 или по-нова версия.

explain update whatever;

Ако заявката е наред, тя показва плана за изпълнение. В противен случай връща синтактична грешка.

Ако използвате по-малка версия на MySQL, виждам няколко опции:

  1. Препоръчителната опция :Подгответе тестова база данни, която поне по структура отразява вашата производствена база данни . В идеалния случай той трябва да бъде попълнен с тестови данни, за да се уверите, че заявката е не само синтактично правилна; но че тоработи както се очаква .
  2. Изпълнете заявката в обхвата на ТРАНЗАКЦИЯ който незабавно се връща назад.
  3. Изпълнете версия на заявката, която е леко променена, за да съответства НЯМА РЕДОВЕ.

Например:

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

Става:

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

Така че, ако използвате 5.6 или по-нова версия, EXPLAIN трикът е чист. Ако не, опции 2 и 3 от списъка също са чисти трикове. Но по принцип трябва да удряте разработка сървър с вашия в процес на разработка все пак запитвания.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете тригери в библиотеката за миграция на Codeigniter

  2. Възможно ли е да се дефинира колона с времеви печат, която не е нула и няма по подразбиране и няма специално поведение при актуализиране?

  3. Актуализиране на множество редове с различни стойности

  4. Как да добавите водещи нули към число в MySQL

  5. fetchAll помощна функция с помощта на PDO