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

Jak zjistit, zda dotaz MySQL UPDATE selže, protože dodávané informace odpovídají datům již v databázi?

Dalším důvodem, proč byste získali 0 ovlivněných řádků, je UPDATE příkaz neodpovídá žádné řádky. Například:

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

Poskytuje 0 ovlivněných řádků, pokud neexistuje žádný řádek s id = 1234 . To také není chyba, je to jen UPDATE které náhodou neodpovídají žádným řádkům.

Způsob, jak zjistit tento případ, je použít SELECT pro ověření, že takový řádek existuje. Pokud můžete potvrdit, že řádek existuje, ale UPDATE řekl, že to ovlivnilo 0 řádků, pak víte, že hodnoty, které jste se pokusili změnit, byly ve skutečnosti řádky již v databázi.

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

Ale rozdíl nemusí být důležitý. Pokud mysql_error(), můžete nahlásit chybu říká, že jeden existuje, jak navrhuje @BoltClock.*Pokud nedojde k žádné chybě, můžete uživateli nahlásit „žádná změna“.



  1. Jak zálohovat databázi Chamilo LMS MySQL

  2. Vložení databáze mysql mění všechna ID na 4294967295

  3. Prahové hodnoty optimalizace – seskupování a agregace dat, část 5

  4. Jak uchovávat historii aktualizací záznamů v MySQL?