Commit&rollback

7,544 views

Published on

COMMIT&ROLLBACK

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
7,544
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
70
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Commit&rollback

  1. 1. Nombre del profesor: Ing. José Omar Díaz Aguilar Nombre del Alumno: Jesús Guadalupe Trujillo Ramírez Indri Patricia Gabriel Escalante Cuatrimestre: 8° Grupo: “D” Materia: “Base de datos” Tecnología de la Información y la Comunicación, Área Sistemas Informáticos
  2. 2. Primeramente se creara una Base de Datos con el nombre de Practica, usamos la Base de Datos y dentro de ella crearemos dos tablas con el nombre de clientes y auditoria_clientes y cada tabla contendrá sus respectivos datos. CREATE DATABASE Practica; USE Practica; CREATE TABLE clientes(id_cliente int not null auto_increment, nombre varchar(100),seccion varchar(20), Accion varchar(10) default 'Insertado', PRIMARY KEY(id_cliente), KEY(nombre)) ENGINE = 'InnoDB'; CREATE TABLE auditoria_clientes(id int not null auto_increment, nombre_anterior varchar(100),seccion_anterior varchar(20), nombre_nuevo varchar(100),seccion_nueva varchar(20), usuario varchar(40),modificado datetime, proceso varchar(10),Id_Cliente int(4),primary key(id)) ENGINE = 'InnoDB'; Para comprobar si quedo la Base de Datos asemos una actualización en Heidi y vemos la Base de Datos creada y las tablas creadas. COMMINT Para poder hacer una tracción, primero se tiene que inicializar con el comando START TRANSACTION, con el comando SAVEPOINT marcamos un punto de la transacción actual con el nombre de ‘PEDRO’, luego creamos nuestro triggers con el nombre de Insertar_auditoria_cliente, y después insertamos en los valores correspondientes, como se muestra en el siguiente código. Nombre de la Base de Datos. Nombre de la tabla auditoria_clientes. Nombre de la tabla clientes.
  3. 3. START TRANSACTION; SAVEPOINT PEDRO; CREATE TRIGGER Inserta_auditoria_clientes AFTER INSERT ON clientes FOR EACH ROW INSERT INTO auditoria_clientes(nombre_nuevo, seccion_nueva, usuario, modificado, proceso, Id_Cliente) VALUES (NEW.nombre, NEW.seccion, CURRENT_USER(), NOW(), NEW.Accion, NEW.id_cliente ); INSERT INTO clientes (nombre, seccion) VALUES('Miguel','informatica'),('Rosa','comida'),('Maria','ropa'),('Alber t','informatica'),('Jordi','comida'),('PEDRO','LICENCIA'); COMMIT; Después concluimos con el COMMIT que es la Finalización de la transacción actual haciendo permanentes todos los cambios pendientes. Como vemos en la siguiente imagen se creó el triggers con el nombre de Insertar_auditoria_clientes y también se insertaron los valores correspondientes en cada tabla y como vemos en las dos tablas se inserto el nombre de nuestro SAVEPOINT que es PEDRO. Tabla clientes: Nombre de nuestro triggers Nombre de nuestro SAVEPOINT
  4. 4. Tabla auditoria_clientes:
  5. 5. ROLLBACK Para el ROLLBACK que es la finalización de una tracción actual descartando todos los cambios pendientes, primero iniciamos la tracción con el START TRANSACTION, luego con el SAVEPOINT que marca un punto de la transacción actual con el nombre de ‘PEDRO’ utilizaremos el mismo trigger pero le cambiaremos el nombre con el nombre de rollback1, insertamos valores en la tabla clientes donde clientes tiene nombre & sección, y los valores serán ‘PEDRO2’ y ‘LICENCIA’, luego ponemos ROLLBACK TO y el nombre que le habíamos puesto a nuestro SAVEPOINT que sería ‘PEDRO’, ponemos nuestro traiggers, en el siguiente código se muestra como quedo el método de ROLLBACK. START TRANSACTION; SAVEPOINT PEDRO; INSERT INTO clientes (nombre, seccion) VALUES('PEDRO2','LICENCIA'); ROLLBACK TO pedro; CREATE TRIGGER Rollback1 AFTER INSERT ON clientes FOR EACH ROW INSERT INTO auditoria_clientes(nombre_nuevo, seccion_nueva, usuario, modificado, proceso, Id_Cliente) VALUES (NEW.nombre, NEW.seccion, CURRENT_USER(), NOW(), NEW.Accion, NEW.id_cliente ); En el código anterior la utilidad del ROLLBACK es que no se podrá insertar los valores de ‘PEDRO2’ y ‘LICENCIA’, porque, como ya se había mencionado antes el rollback finaliza la tracción, entonces en este caso no podrá pasar al triggers. En la siguiente imagen observamos que tenemos a PEDRO, ahora utilizaremos el ROLLBACK.
  6. 6. Como se observa se creó el triggers con el nombre de rollback1 Luego vamos en la tabla clientes y observamos que no se puedo insertar los datos de ‘PEDRO2’ y ‘LICENCIA’ y quedo igual. Nombre de nuestro triggers

×