sql >> Database teknologi >  >> RDS >> Mysql

Hvordan ved man, om en MySQL UPDATE-forespørgsel mislykkes, fordi de oplysninger, der leveres, matcher data, der allerede er i databasen?

En anden grund til, at du får 0 berørte rækker, er, hvis UPDATE sætningen matcher ingen rækker. For eksempel:

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

Giver 0 berørte rækker, hvis der ikke findes en række med id = 1234 . Dette er heller ikke en fejl, det er bare en UPDATE der tilfældigvis ikke matchede nogen rækker.

Måden at opdage dette tilfælde er at bruge SELECT for at verificere, at der er sådan en række. Hvis du kan bekræfte, at rækken eksisterer, men UPDATE sagde det påvirkede 0 rækker, så ved du, at de værdier, du forsøgte at ændre, faktisk var de rækker, der allerede var i databasen.

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

Men forskellen er måske ikke vigtig. Du kan rapportere en fejl, hvis mysql_error() siger, at der er en, som @BoltClock foreslår.*Hvis der ikke er nogen fejl, kan du bare rapportere "ingen ændring" til brugeren.



  1. Salter mine hashes med PHP og MySQL

  2. Opret et databasediagram i MySQL Workbench

  3. ML{.NET} Introduktion

  4. T-SQL tirsdag #65:Lær noget nyt