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

comprobar INSERT ?

Estas en el tema de comprobar INSERT ? en el foro de Bases de Datos General en Foros del Web. Hola amigos: resulta que tengo varias tablas, en las que tengo que insertar datos. pero quiero tener alguna regla de integridad, por que si o ...
  #1 (permalink)  
Antiguo 24/02/2008, 09:56
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
comprobar INSERT ?

Hola amigos:


resulta que tengo varias tablas, en las que tengo que insertar datos. pero quiero tener alguna regla de integridad, por que si o si se debe completar el insert en cada tabla, si una no resultara, como por ejemplo que se corte la luz, y no termine de ejecutar los insert, me deshaga todos los anteriores... no se si me explico, lo que necesito es verificar eso... como lo hago?
__________________
Facil ! Lo unico que hay que hacer para no ser animal, es razonar !
  #2 (permalink)  
Antiguo 24/02/2008, 10:41
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 18 años
Puntos: 3
Re: comprobar INSERT ?

Deberías especificar que base de datos usas y bajo que entorno ejecutas los inserts (php, batch, etc).

De todas maneras lo que estas buscando es una TRANSACCIÓN.

Saludos.
__________________
programación php
  #3 (permalink)  
Antiguo 24/02/2008, 11:01
 
Fecha de Ingreso: febrero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: comprobar INSERT ?

No sé si existe un modo automático para realizarlo, pero yo utilizo una técnica que hasta ahora me ha siervido.
Se crean las dos funciones Insertar() y Borrar() para cada tabla. Cuando realizamos la función Insertar, nos devuelve un valor 0 ó 1 si el resultado es correcto o con error. En caso de error, efectuamos la función Borrar () para los registros anteriores que si se han realizado, para que siempre estén todos correctos.
En los casos en que sea por corte de corriente es más dificil ya que a veces no tenemos respuesta, a no ser que utilicemos una tabla auxiliar para comprobar el resultado y no la memoria del proceso. Una vez efectuados todos los insert, leemos de la tabla auxiliar y comprobamos si se han realizado correctamente.

No sé si me he explicado bien, pero aunque parezca complicado, es eficaz.
Un saludo
  #4 (permalink)  
Antiguo 24/02/2008, 11:10
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 18 años
Puntos: 3
Re: comprobar INSERT ?

Justamente las transacciones están diseñadas para soportar hasta la peor situación que sería un corte de luz.

Te recomiendo que busques sobre el tema según tu gestor. Por ejemplo en Mysql se hacen con tablas Innodb.

Si todas las operaciones se completaron se hace un COMMIT, y si algo fallo se hace un ROLLBACK. Hasta que no hay commit los cambios no se ejecutan.

Saludos.
__________________
programación php
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 22:15.