Commit y Rollback
Commit y Rollback
commit
La sentencia COMMIT termina una unidad de trabajo y confirma los cambios de la base de datos que ha realizado esa unidad de trabajo.
Ejemplo:
Resumir los cambios en aproximadamente 50 caracteres o menos
Mas texto descriptivo, si es necesario. Limita aproximadamente a 72 caracteres o menos. En algunos contextos, la primera línea se establece como el asunto del commit y el resto es el cuerpo. La línea en blanco que separa el asunto del cuerpo es fundamental (a menos que se omita el cuerpo por completo); diversas herramientas como `log`,` y `shortlog` y `rebase` pueden confundirse si ejecuta los dos juntos.
Explique el problema que el commit está resolviendo. Concéntrese en por qué usted está haciendo este cambio en comparación de cómo (pues el código explica esa parte).
¿Hay efectos secundarios u otros consecuencias poco intuitivas en este cambio? Este es el lugar para explicarlos.
Otros párrafos vienen después de líneas en blanco.
- Las viñetas o listas son aceptables también
- Normalmente, un guión o asterisco se utiliza para la viñeta, precedido por un solo espacio, con líneas en blanco en el medio, pero hay diferentes convenciones
Si utiliza un administrador de "issues", coloque referencias a ellos en la parte inferior, así:
Resuelve: # 123
Consulte también: # 456, # 789
Rollback
un rollback es una operación que devuelve a la base de datos a algún estado previo. Los Rollbacks son importantes para la integridad de la base de datos, a causa de que significan que la base de datos puede ser restaurada a una copia limpia incluso después de que se han realizado operaciones erróneas
Ejemplo:
START TRANSACTION
SELECT * FROM suppliers
WHERE supplier_name like '%bob%';
ROLLBACK TRANSACTION;
SELECT * FROM suppliers
WHERE supplier_name like '%bob%';
ROLLBACK TRANSACTION;
Transacciones
una transacción es una interacción con una estructura de datos compleja, compuesta por varios procesos que se han de aplicar uno después del otro.
Ejemplos
La transferencia de fondos entre dos cuentas corrientes de un banco. Si queremos transferir, supongamos 5000€ dela cuenta corriente de A y B y las cuentas tienen, respectivamente, 20000€ y 0€ de saldo los pasos lógicos serían:
- Comprobar si en la cuenta A hay dinero suficiente.
- Restar 5000€ de la cuenta de A, con lo que su saldo pasa a ser de 15000€.
- Sumar 5000€ a la cuenta de B, con lo que los saldos quedan A= 15000€ y B= 5000€
Ahora bien, si entre el paso 2 y el 3 el sistema sufre una parada o error inesperado las cuentas quedarían como A= 15000 y B= 0 con lo cual se han volatilizado 5000€ y presumiblemente ni A ni B estarán contentos, y hubiesen preferido que la transacción nunca hubiese sido iniciada.
Este ejemplo ilustra por qué las transacciones tienen un comportamiento deseado de Todo o nada, o se realiza completamente o no debe tener ningún efecto.
Savepoint
es una forma de implementar subtransacciones (también conocidas como transacciones anidadas) dentro de un sistema de gestor de base de datos transaccional indicando un punto dentro de una transacción de base de datos que puede ser restaurada sin afectar a cualquier trabajo realizado en la transacción antes de que el punto de recuperación fuera creado. Pueden existir varios puntos de recuperación dentro de una transacción individual.
Ejemplo
BEGIN TRAN
UPDATE Clientes SET Estado = 'Inactivo' WHERE iddepartamento = 1020
UPDATE Clientes SET Estado = 'De Baja' WHERE iddepartamento=7025
SAVE TRANSACTION Punto1 -- Guardamos la transacción (Savepoint)
UPDATE Clientes SET Descripcion = 'Ninguna' WHERE idcliente=5896
-- Este ROLLBACK afecta solo a las instrucciones posteriores al savepoint Punto 1.
ROLLBACK TRANSACTION Punto 1
-- Confirmamos la transacción
COMMIT
Acid en una transacción
En bases de datos se denomina ACID a las características de los parámetros que permiten clasificar las transacciones de los sistemas de gestión de las bases de datos. Cuando se dice que es ACID compliant se indica -en diversos grados- que éste permite realizar transacciones.
En concreto ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español.
Ejemplo:
Begin
es una palabra clave que permite indicar en el editor de métodos el inicio de una secuencia de comandos SQL que debe ser interpretada por la fuente de datos actual del proceso (el motor SQL integrado de 4D o toda fuente especificada vía el comando SQL LOGIN).
Ejemplos
USE AdventureWorks2012;
GO
BEGIN TRANSACTION;
GO
IF @@TRANCOUNT = 0
BEGIN
SELECT FirstName, MiddleName
FROM Person.Person WHERE LastName = 'Adams';
ROLLBACK TRANSACTION;
PRINT N'Rolling back the transaction two times would cause an error.';
END;
ROLLBACK TRANSACTION;
PRINT N'Rolled back the transaction.';
GO
/*
Rolled back the transaction.
*/
Comentarios
Publicar un comentario