SlideShare una empresa de Scribd logo
Comit Rollback y Trigers

       Presentado por:

    Ricardo Arturo Torres

   Juan Jacobo Tibaquira

   Alejandro Vinasco Ardila
Commit y Rollback
Por defecto, MySQL se ejecuta con el modo autocommit
activado. Esto significa que en cuanto ejecute un comando
que actualice (modifique) una tabla, MySQL almacena la
actualización en disco.

Si usa tablas transaccionales (como InnoDB o BDB),
puede desactivar el modo autocommit con el siguiente
comando:

SET AUTOCOMMIT=0;

Tras deshabilitar el modo autocommit poniendo la variable
AUTOCOMMIT a cero, debe usar COMMIT para almacenar
 los cambios en disco o ROLLBACK si quiere ignorar los
cambios hechos desde el comienzo de la transacción.
Ejemplos:
                  START TRANSACTION:

START TRANSACTION;

SELECT @A:=SUM(salary) FROM table1 WHERE type=1;

UPDATE table2 SET summary=@A WHERE type=1;

COMMIT


Con START TRANSACTION, autocommit permanece
  deshabilitado hasta el final de la transacción con COMMIT o
  ROLLBACK. El modo autocommit vuelve a su estado prévio.
START TRANSACTION WITH CONSISTENT
 SNAPSHOT;

La cláusula WITH CONSISTENT SNAPSHOT
  comienza una lectura consistente para
  motores de almacenamiento capaces de ello.
  Actualmente, esto se aplica sólo a InnoDB. El
  efecto es el mismo que realizar un START
  TRANSACTION seguido por un SELECT
  desde cualquier tabla InnoDB.
Comenzar una transacción provoca que se
  realice un UNLOCK TABLES implícito.
Tenga en cuenta que si no usa tablas
 transaccionales, cualquier cambio se almacena
 de golpe, a pesar del estado del modo
 autocommit.

Si realiza un comando ROLLBACK tras actualizar
  una tabla no transaccional dentro de una
  transacción,    ocurre   una    advertencia
  ER_WARNING_NOT_COMPLETE_ROLLBAC
  K.

Los cambios en tablas transaccionales se
  deshacen, pero no los cambios en tablas no
  transaccionales.
Cada transacción se almacena en el log binario en un
  trozo, hasta COMMIT. Las transacciones que se
  deshacen no se loguean. (Exceción: Las modificaciones
  a tablas no transaccionales no pueden deshacerse. Si
  una transacción que se deshace incluye modificaciones
  a tablas no transaccionales, la transacción entera se
  loguea con un comando ROLLBACK al final para
  asegurar que las modificaciones a estas tablas se
  replican.) “El registro binario (Binary Log)”.

Puede cambiar el nivel de aislamiento para transacciones
  con SET TRANSACTION ISOLATION LEVEL.
“Sintaxis de SET TRANSACTION”.

Deshacer puede ser una operación lenta que puede ocurrir sin
  que el usuario lo haya pedido explícitamente (por ejemplo,
  cuando ocurre un error). Debido a ello, SHOW
  PROCESSLIST en MySQL 5.0 muestra Rolling back en la
  columna Statepara la conexión durante rollbacks implícitos y
  explícitos (comando SQL ROLLBACK).

Ésta es una traducción del manual de referencia de MySQL,
  que puede encontrarse en dev.mysql.com
Procedimiento de almacenado

Son funcionalidades nuevas apertir de la
version 5.0 de MySQL

Es un conjunto de comandos SQL que pueden
almacenarse en el servidor.

Los clientes ya no necesitan relanzar los
comandos individuales.
Procesos de almacenado


Se usan cuando multiples aplicaciones cliente
 funcionan en distintas plataformas, o estan
       escritas en distintos lenguajes.

  Cuando la seguridad es muy importante.
Procesos de almacenado




 Los procesos de almacenados pueden enviar
menos informacion entre el servidor y el cliente.
Triggers o Disparadores

Otra de las nuevas características incluidas en
MySQL, además de los procedimientos
almacenados, son los triggers, son escuchas,
que se mantienen alerta a los eventos que
puedan producirse en una tabla (insert , update
y delete) y ejecutan un código antes (before) o
después (after) de que se produzca este
evento.
Sintaxis de los triggers

CREATE TRIGGER <nombre>
     {BEFORE|AFTER}
 {INSERT|UPDATE|DELETE}
             ON
       <tablename>
      FOR EACH ROW
           BEGIN
      <sentenciasSQL>
            END;
Ejemplo

Crearemos la tabla de clientes y le ponemos
algunos registros:

CREATE TABLE clientes(
      id int not null auto_increment,
      nombre varchar(100),
      seccion varchar(10),
      PRIMARY KEY(id),
      KEY(nombre)
) ENGINE = InnoDB;
INSERT INTO clientes (nombre, seccion)
                VALUES
        ('Miguel','informatica'),
           ('Rosa','comida'),
             ('Maria','ropa'),
        ('Albert','informatica'),
           ('Jordi','comida');
Y una tabla que será la que guardará los datos
               de la "auditoria"

     CREATE TABLE auditoria_clientes
                       (
       id int not null auto_increment,
            nombre varchar(100),
       anterior_seccion varchar(10),
             usuario varchar(40),
            modificado datetime,
               primary key(id)
           ) ENGINE = InnoDB;
y finalmente un trigger que se disparará cada
vez que alguien modifique un dato de la tabla
  clientes y lo guardará en una tabla junto al
         nombre del usuario y la fecha.

CREATE TRIGGER trigger_auditoria_clientes
      AFTER UPDATE ON clientes
             FOR EACH ROW
   INSERT INTO auditoria_clientes(name,
  anterior_seccion, usuario, modificado )
    VALUES (OLD.nombre, OLD.seccion,
      CURRENT_USER(), NOW() );
Gracias


por la Atencion


   Prestada

Más contenido relacionado

La actualidad más candente

Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysql
Giovanni Peruch
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datos
Lalo Osorio
 
Mapa conceptual sofware libre
Mapa conceptual sofware libreMapa conceptual sofware libre
Mapa conceptual sofware libre
Manuel Lara
 
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
JOSE AHIAS LOPEZ PORTILLO
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
romeprofe
 

La actualidad más candente (20)

Ddl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosDdl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datos
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
Consultas en sql básico
Consultas en sql básicoConsultas en sql básico
Consultas en sql básico
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysql
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datos
 
Mapa conceptual sofware libre
Mapa conceptual sofware libreMapa conceptual sofware libre
Mapa conceptual sofware libre
 
Caso de estudio joins
Caso de estudio joinsCaso de estudio joins
Caso de estudio joins
 
Presentacion de Microsoft SQL Server.
Presentacion de Microsoft SQL Server. Presentacion de Microsoft SQL Server.
Presentacion de Microsoft SQL Server.
 
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWSSEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
 
Windows vista
Windows vistaWindows vista
Windows vista
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
 
Couchdb
CouchdbCouchdb
Couchdb
 
Evolución de linux
Evolución de linuxEvolución de linux
Evolución de linux
 
Couch db
Couch dbCouch db
Couch db
 
Linea de tiempo windows
Linea de tiempo windowsLinea de tiempo windows
Linea de tiempo windows
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 

Similar a Commit y rollback

Bd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa TriggersBd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa Triggers
demoiselle
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
Oca srl
 

Similar a Commit y rollback (20)

TRIGGER-ACTIVADORES
TRIGGER-ACTIVADORESTRIGGER-ACTIVADORES
TRIGGER-ACTIVADORES
 
TRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORESTRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORES
 
Trabajo grupal - Base de Datos
Trabajo grupal - Base de DatosTrabajo grupal - Base de Datos
Trabajo grupal - Base de Datos
 
Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005
 
Sql2
Sql2Sql2
Sql2
 
Transacciones
TransaccionesTransacciones
Transacciones
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Qué es SQL
Qué es SQL Qué es SQL
Qué es SQL
 
Formacion critica
Formacion criticaFormacion critica
Formacion critica
 
Bd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa TriggersBd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa Triggers
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 
Dbd triggers
Dbd triggersDbd triggers
Dbd triggers
 
Trigger
TriggerTrigger
Trigger
 
SQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOS
SQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOSSQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOS
SQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOS
 
Disparadores.pptx
Disparadores.pptxDisparadores.pptx
Disparadores.pptx
 
Tutorial disparadores
Tutorial disparadoresTutorial disparadores
Tutorial disparadores
 
Trigger o Disparadores
Trigger o DisparadoresTrigger o Disparadores
Trigger o Disparadores
 

Último

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 

Último (20)

3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 

Commit y rollback

  • 1. Comit Rollback y Trigers Presentado por: Ricardo Arturo Torres Juan Jacobo Tibaquira Alejandro Vinasco Ardila
  • 2. Commit y Rollback Por defecto, MySQL se ejecuta con el modo autocommit activado. Esto significa que en cuanto ejecute un comando que actualice (modifique) una tabla, MySQL almacena la actualización en disco. Si usa tablas transaccionales (como InnoDB o BDB), puede desactivar el modo autocommit con el siguiente comando: SET AUTOCOMMIT=0; Tras deshabilitar el modo autocommit poniendo la variable AUTOCOMMIT a cero, debe usar COMMIT para almacenar los cambios en disco o ROLLBACK si quiere ignorar los cambios hechos desde el comienzo de la transacción.
  • 3. Ejemplos: START TRANSACTION: START TRANSACTION; SELECT @A:=SUM(salary) FROM table1 WHERE type=1; UPDATE table2 SET summary=@A WHERE type=1; COMMIT Con START TRANSACTION, autocommit permanece deshabilitado hasta el final de la transacción con COMMIT o ROLLBACK. El modo autocommit vuelve a su estado prévio.
  • 4. START TRANSACTION WITH CONSISTENT SNAPSHOT; La cláusula WITH CONSISTENT SNAPSHOT comienza una lectura consistente para motores de almacenamiento capaces de ello. Actualmente, esto se aplica sólo a InnoDB. El efecto es el mismo que realizar un START TRANSACTION seguido por un SELECT desde cualquier tabla InnoDB. Comenzar una transacción provoca que se realice un UNLOCK TABLES implícito.
  • 5. Tenga en cuenta que si no usa tablas transaccionales, cualquier cambio se almacena de golpe, a pesar del estado del modo autocommit. Si realiza un comando ROLLBACK tras actualizar una tabla no transaccional dentro de una transacción, ocurre una advertencia ER_WARNING_NOT_COMPLETE_ROLLBAC K. Los cambios en tablas transaccionales se deshacen, pero no los cambios en tablas no transaccionales.
  • 6. Cada transacción se almacena en el log binario en un trozo, hasta COMMIT. Las transacciones que se deshacen no se loguean. (Exceción: Las modificaciones a tablas no transaccionales no pueden deshacerse. Si una transacción que se deshace incluye modificaciones a tablas no transaccionales, la transacción entera se loguea con un comando ROLLBACK al final para asegurar que las modificaciones a estas tablas se replican.) “El registro binario (Binary Log)”. Puede cambiar el nivel de aislamiento para transacciones con SET TRANSACTION ISOLATION LEVEL.
  • 7. “Sintaxis de SET TRANSACTION”. Deshacer puede ser una operación lenta que puede ocurrir sin que el usuario lo haya pedido explícitamente (por ejemplo, cuando ocurre un error). Debido a ello, SHOW PROCESSLIST en MySQL 5.0 muestra Rolling back en la columna Statepara la conexión durante rollbacks implícitos y explícitos (comando SQL ROLLBACK). Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com
  • 8. Procedimiento de almacenado Son funcionalidades nuevas apertir de la version 5.0 de MySQL Es un conjunto de comandos SQL que pueden almacenarse en el servidor. Los clientes ya no necesitan relanzar los comandos individuales.
  • 9. Procesos de almacenado Se usan cuando multiples aplicaciones cliente funcionan en distintas plataformas, o estan escritas en distintos lenguajes. Cuando la seguridad es muy importante.
  • 10. Procesos de almacenado Los procesos de almacenados pueden enviar menos informacion entre el servidor y el cliente.
  • 11. Triggers o Disparadores Otra de las nuevas características incluidas en MySQL, además de los procedimientos almacenados, son los triggers, son escuchas, que se mantienen alerta a los eventos que puedan producirse en una tabla (insert , update y delete) y ejecutan un código antes (before) o después (after) de que se produzca este evento.
  • 12. Sintaxis de los triggers CREATE TRIGGER <nombre> {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON <tablename> FOR EACH ROW BEGIN <sentenciasSQL> END;
  • 13. Ejemplo Crearemos la tabla de clientes y le ponemos algunos registros: CREATE TABLE clientes( id int not null auto_increment, nombre varchar(100), seccion varchar(10), PRIMARY KEY(id), KEY(nombre) ) ENGINE = InnoDB;
  • 14. INSERT INTO clientes (nombre, seccion) VALUES ('Miguel','informatica'), ('Rosa','comida'), ('Maria','ropa'), ('Albert','informatica'), ('Jordi','comida');
  • 15. Y una tabla que será la que guardará los datos de la "auditoria" CREATE TABLE auditoria_clientes ( id int not null auto_increment, nombre varchar(100), anterior_seccion varchar(10), usuario varchar(40), modificado datetime, primary key(id) ) ENGINE = InnoDB;
  • 16. y finalmente un trigger que se disparará cada vez que alguien modifique un dato de la tabla clientes y lo guardará en una tabla junto al nombre del usuario y la fecha. CREATE TRIGGER trigger_auditoria_clientes AFTER UPDATE ON clientes FOR EACH ROW INSERT INTO auditoria_clientes(name, anterior_seccion, usuario, modificado ) VALUES (OLD.nombre, OLD.seccion, CURRENT_USER(), NOW() );