sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo saber si una consulta de ACTUALIZACIÓN de MySQL falla porque la información proporcionada coincide con los datos que ya están en la base de datos?

Otra razón por la que obtendría 0 filas afectadas es si UPDATE declaración no coincide con filas. Por ejemplo:

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

Da 0 filas afectadas si no existe ninguna fila con id = 1234 . Esto tampoco es un error, es solo una UPDATE eso no coincidió con ninguna fila.

La forma de detectar este caso es usar SELECT para verificar que existe tal fila. Si puede confirmar que la fila existe, pero UPDATE dijo que afectó a 0 filas, entonces sabe que los valores que intentó cambiar eran, de hecho, las filas que ya estaban en la base de datos.

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

Pero la distinción puede no ser importante. Podría reportar un error si mysql_error() dice que hay uno, como sugiere @BoltClock.*Si no hay ningún error, simplemente podría informar "sin cambios" al usuario.