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

Jak sprawdzić, czy zapytanie MySQL UPDATE nie powiedzie się, ponieważ dostarczane informacje są zgodne z danymi już w bazie danych?

Innym powodem, dla którego otrzymasz 0 wierszy, których dotyczy problem, jest to, że UPDATE instrukcja nie pasuje do żadnych wierszy. Na przykład:

UPDATE MyTable SET field = 'content' WHERE id = 1234;

Daje 0 wierszy, których dotyczy problem, jeśli żaden wiersz nie istnieje z id = 1234 . To też nie jest błąd, to tylko UPDATE który zdarzył się nie pasować do żadnych wierszy.

Sposobem na wykrycie tego przypadku jest użycie SELECT aby sprawdzić, czy istnieje taki wiersz. Jeśli możesz potwierdzić, że wiersz istnieje, ale UPDATE powiedział, że wpłynęło to na 0 wierszy, to wiesz, że wartości, które próbowałeś zmienić, były w rzeczywistości wierszami już w bazie danych.

SELECT COUNT(*) FROM MyTable WHERE id = 1234;

Ale rozróżnienie może nie być ważne. Możesz zgłosić błąd, jeśli mysql_error() mówi, że istnieje, jak sugeruje @BoltClock. * Jeśli nie ma błędu, możesz po prostu zgłosić użytkownikowi „brak zmian”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z pól wirtualnych w cakePHP 2.x

  2. odczyt/zapis danych Unicode w MySql

  3. Struts + Hibernate:@SessionTarget nie działa

  4. BŁĄD 1062 (23000):Zduplikowany wpis „2147483647” dla klucza „PRIMARY”

  5. Zmień kolumnę MySQL na AUTO_INCREMENT