SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
Victor Chavez
 
Diseño de entraday_salida
Diseño de entraday_salidaDiseño de entraday_salida
Diseño de entraday_salida
Jorge Garcia
 
Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)
Miguel Miranda
 
Diagramas De Casos De Uso
Diagramas De Casos De UsoDiagramas De Casos De Uso
Diagramas De Casos De Uso
nahun1385
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
itsl
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
Jefer Lee Parra
 

Mais procurados (20)

Transacciones
TransaccionesTransacciones
Transacciones
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentes
 
Diseño de entraday_salida
Diseño de entraday_salidaDiseño de entraday_salida
Diseño de entraday_salida
 
SQLite
SQLiteSQLite
SQLite
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)Requerimientos de un Sistema (usando criterios del swebok)
Requerimientos de un Sistema (usando criterios del swebok)
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetos
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Diagramas De Casos De Uso
Diagramas De Casos De UsoDiagramas De Casos De Uso
Diagramas De Casos De Uso
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
B. manejo de concurrencia
B.  manejo de concurrenciaB.  manejo de concurrencia
B. manejo de concurrencia
 
Sqlite
SqliteSqlite
Sqlite
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial Básico
 

Semelhante 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
 

Semelhante 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

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

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() );