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

Transaction

Estas en el tema de Transaction en el foro de Bases de Datos General en Foros del Web. Buenos días, tardes, noches. Quería hacerles una consulta super concisa. Si realizó un script de consultas dentro de una transacción y no termino este ni ...
  #1 (permalink)  
Antiguo 01/07/2011, 12:42
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Transaction

Buenos días, tardes, noches.

Quería hacerles una consulta super concisa.

Si realizó un script de consultas dentro de una transacción y no termino este ni con COMMIT ni con ROLLBACK, que pasa con las consultas de escritura qeu hice, quedan en memoria y se desechan (como hacer ROLLBACK) o se escriben por defecto en la base de datos?

Gracias por su ayuda =)
  #2 (permalink)  
Antiguo 01/07/2011, 13:10
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Transaction

Las consultas no se ven afectadas por las transacciones. Solo las operaciones DML (Insert,update,delete y merge(En algunos motores)).

Para brindar consistencia en las consultas, antes de ejecutarse, hace una especie de fotografia y muestra los resultados del estado de la BD en el momento en que el usuario ejecutó la misma.

Si hay operaciones DML en estado de transacción, nada mas y nada menos que tu base de datos bloqueará todos los registros que intervengan en la transacción y no los podrá ejecutar hasta que el usuario la confirme o la acabe.

No se si me hice entender

saludos ribon
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 01/07/2011, 13:41
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Transaction

Ok, admito que escribí mal la pregunta xD

Si hago inserts, updates, etc en una tabla manejando transacciones, que pasa si inesperadamente ocurre un error (dentro del ámbito de la transacción) quiero saber si los registros que "Se alcanzaron" a terminar las write-query son escritos en la base de datos o son desechados.

espero haya quedado mejor planteada mi consulta xD

Gracias huesito por darte la molestia de responder =)

saludos
  #4 (permalink)  
Antiguo 01/07/2011, 14:11
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Transaction

Si hay un error en la transacción, automaticamente la transacción hace rollback.

Sea el error que sea, la transacción se finaliza y hace un rollback automatico.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 01/07/2011, 16:03
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Transaction

Cuando no se indica un commit o rollback en un proceso, las transacciones se hacen en forma implícita, y el comportamiento que tengan dependerá de la definición de atomicidad de transacciones que implemente cada base de datos, por ejemplo:

Si tengo una tabla T1 con un campo ID Numerico y ejecuto el procedimiento

Código:
create procedure p1
as
begin
insert into t1 values (1)
insert into t1 values ('a') --Error por alfanumérico en un campo numérico
end
En Oracle, después de la ejecución no verás datos en la tabla porque define que una transacción implícita es a nivel de proceso, en cambio, en SQL Server verás un registro insertado con valor 1 porque define que una transacción implícita es a nivel de sentencia SQL. En conclusión, es recomendado controlar el comportamiento de la transacción con un commit y rollback explícito, pero si no los utilizas, asegúrate de conocer cómo implementa la atomicidad el motor de base de datos con el que estás trabajando.

Saldudos
  #6 (permalink)  
Antiguo 04/07/2011, 15:47
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Transaction

Ok gracias, igual yo pongo de manera explicita el Rollback o Commit, pero mi pregunta era que pasaba si en el camino (antes de llegar al Rollback o Commit) ocurre por ejemplo un error fatal.

Creo que por ahora mi duda está resuelta, es ilógico pensar que se escribe en las tablas si no se hace commit, aunque me pareció interesante eso del comportamiento por default en transacciones implicitas.

Gracias por las respuestas.

saludos.

Etiquetas: transacciones, bases-de-datos
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 23:40.