Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Saber si un INSERT subo éxito o no

Estas en el tema de Saber si un INSERT subo éxito o no en el foro de Mysql en Foros del Web. Pues eso, que si hago un: INSERT INTO MI TABLA(camp1,camp2) values (1,2) ¿como puedo saber si ha tenido éxito la instrucción?. en mssql habia una ...
  #1 (permalink)  
Antiguo 02/01/2013, 09:11
Tio
 
Fecha de Ingreso: enero-2005
Mensajes: 54
Antigüedad: 19 años, 3 meses
Puntos: 1
Saber si un INSERT subo éxito o no

Pues eso, que si hago un:

INSERT INTO MI TABLA(camp1,camp2) values (1,2)

¿como puedo saber si ha tenido éxito la instrucción?.

en mssql habia una variable que se podia consultar algo como:

if @@errorcode = 0 begin
-- no hay error
end else begin
-- hay error
end
  #2 (permalink)  
Antiguo 02/01/2013, 09:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Saber si un INSERT subo éxito o no

Depende... ¿Lo ejecutas manualmente, o lo ejecutas por medio de alguna aplicación programada?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/01/2013, 11:04
Tio
 
Fecha de Ingreso: enero-2005
Mensajes: 54
Antigüedad: 19 años, 3 meses
Puntos: 1
Respuesta: Saber si un INSERT subo éxito o no

Está en un procedimiento almacenado, lo ejecuto llamando a ese procedimiento desde una aplicación java.
  #4 (permalink)  
Antiguo 02/01/2013, 11:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Saber si un INSERT subo éxito o no

Bueno, estás SP, simplemente tienes que obtener el valor devuelto por la función ROW_COUNT(), ejecutándola inmediatamente luego del INSERT.
Cita:
ROW_COUNT() retorna el número de registros actualizados, insertados o borrados por el comando precedente. Esto es lo mismo que el número de registros que muestra el cliente mysql y el valor de la función de la API C mysql_affected_rows() .
En el caso de estar insertando un registro nuevo en una tabla que posea un campo numerico autoincremental, también puedes usar LAST_INSERT_ID(), donde cualquier valor superior a cero (0) implicará que se insertó exitosamente.
Cita:
Retorna el último valor generado automáticamente que se insertó en una columna AUTO_INCREMENT.
Código MySQL:
Ver original
  1.         -> 195

El último ID generado se mantiene en el servidor para cada conexión. Esto significa que el valor de la función retorna a cada cliente el valor AUTO_INCREMENT más reciente generado por ese cliente. Este valor no puede ser afectado por otros clientes, incluso si generan valores AUTO_INCREMENT ellos mismos. Este comportamiento asegura que reciba sus propios IDs sin tener en cuenta la actividad de otros clientes y sin la necesidad de bloqueos o transacciones.

El valor de LAST_INSERT_ID() no cambia si actualiza la columna AUTO_INCREMENT de un registro con un valor no mágico (esto es, un valor que no es NULL ni 0).

Si inserta varios registros a la vez con un comando de inserción LAST_INSERT_ID() retorna el valor del primer registro insertado. La razón para esto es hacer posible reproducir fácilmente el mismo comando INSERT contra otro servidor.

Si usa INSERT IGNORE y el registro se ignora, el contador AUTO_INCREMENT no se incrementa y LAST_INSERT_ID() retorna 0, lo que refleja que no se ha insertado ningún registro. (Antes de MySQL 4.1, AUTO_INCREMENT el contador se incrementa y LAST_INSERT_ID() retorna el nuevo valor.)
Ventajas de leer el manual de referencia...
MySQL 5.0 Reference Manual
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 02/01/2013, 12:35
Tio
 
Fecha de Ingreso: enero-2005
Mensajes: 54
Antigüedad: 19 años, 3 meses
Puntos: 1
Respuesta: Saber si un INSERT subo éxito o no

Gracias!... es justo lo que necesitaba, conocer si el número de registros introducidos es distinto de cero...

Un saludo!

Etiquetas: insert, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:45.