SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Hilos y procesos - Vanessa Ramirez
Hilos y procesos - Vanessa RamirezHilos y procesos - Vanessa Ramirez
Hilos y procesos - Vanessa RamirezVanessa Ramirez
 
Modelo conceptual
Modelo conceptualModelo conceptual
Modelo conceptualUTN
 
Sistemas de soporte a la toma de decisiones (DSS)
Sistemas de soporte a la toma de decisiones (DSS)Sistemas de soporte a la toma de decisiones (DSS)
Sistemas de soporte a la toma de decisiones (DSS)Irina Cendrero Sanjurjo
 
Factibilidad Tecnica, Operativa y Economica
Factibilidad Tecnica, Operativa y EconomicaFactibilidad Tecnica, Operativa y Economica
Factibilidad Tecnica, Operativa y EconomicaSistemas UDC
 
Importancia del análisis de requerimientos
Importancia del análisis de requerimientosImportancia del análisis de requerimientos
Importancia del análisis de requerimientosalmarza1
 
Administracion de datos unidad 1
Administracion de datos unidad 1Administracion de datos unidad 1
Administracion de datos unidad 1Juan Anaya
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASEI R
 
Backbox Distribución deriva de Ubuntu
Backbox Distribución deriva de UbuntuBackbox Distribución deriva de Ubuntu
Backbox Distribución deriva de UbuntuJosé Moreno
 
Computacion Movil Y Ubicua
Computacion Movil Y UbicuaComputacion Movil Y Ubicua
Computacion Movil Y Ubicuaivan
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoriaBeatriz Pérez
 
calidad de los sistemas de informacion
calidad de los sistemas de informacioncalidad de los sistemas de informacion
calidad de los sistemas de informacionErika Vazquez
 

Was ist angesagt? (20)

LENGUAJE DE PROGRAMACION SQL
LENGUAJE DE PROGRAMACION SQLLENGUAJE DE PROGRAMACION SQL
LENGUAJE DE PROGRAMACION SQL
 
Hilos y procesos - Vanessa Ramirez
Hilos y procesos - Vanessa RamirezHilos y procesos - Vanessa Ramirez
Hilos y procesos - Vanessa Ramirez
 
Modelo conceptual
Modelo conceptualModelo conceptual
Modelo conceptual
 
Sistemas de soporte a la toma de decisiones (DSS)
Sistemas de soporte a la toma de decisiones (DSS)Sistemas de soporte a la toma de decisiones (DSS)
Sistemas de soporte a la toma de decisiones (DSS)
 
Factibilidad Tecnica, Operativa y Economica
Factibilidad Tecnica, Operativa y EconomicaFactibilidad Tecnica, Operativa y Economica
Factibilidad Tecnica, Operativa y Economica
 
Importancia del análisis de requerimientos
Importancia del análisis de requerimientosImportancia del análisis de requerimientos
Importancia del análisis de requerimientos
 
Administracion de datos unidad 1
Administracion de datos unidad 1Administracion de datos unidad 1
Administracion de datos unidad 1
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
 
Backbox Distribución deriva de Ubuntu
Backbox Distribución deriva de UbuntuBackbox Distribución deriva de Ubuntu
Backbox Distribución deriva de Ubuntu
 
Estructura de registros
Estructura de registrosEstructura de registros
Estructura de registros
 
Conceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de DatosConceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de Datos
 
GESTION DE LA RED INTEGRADA
GESTION DE LA RED INTEGRADAGESTION DE LA RED INTEGRADA
GESTION DE LA RED INTEGRADA
 
Computacion Movil Y Ubicua
Computacion Movil Y UbicuaComputacion Movil Y Ubicua
Computacion Movil Y Ubicua
 
Oracle
Oracle Oracle
Oracle
 
SQLite
SQLiteSQLite
SQLite
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoria
 
calidad de los sistemas de informacion
calidad de los sistemas de informacioncalidad de los sistemas de informacion
calidad de los sistemas de informacion
 
Mapa conceptual BD
Mapa conceptual BDMapa conceptual BD
Mapa conceptual BD
 
Mapa mental de hilos
Mapa mental de hilosMapa mental de hilos
Mapa mental de hilos
 
Qué es el modelado de negocios
Qué es el modelado de negociosQué es el modelado de negocios
Qué es el modelado de negocios
 

Ähnlich wie Commit y rollback

Ähnlich wie Commit y rollback (20)

TRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORESTRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORES
 
TRIGGER-ACTIVADORES
TRIGGER-ACTIVADORESTRIGGER-ACTIVADORES
TRIGGER-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
 

Kürzlich hochgeladen

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
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 UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
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 JUNITMaricarmen Sánchez Ruiz
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Kürzlich hochgeladen (15)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
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
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
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
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

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