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?

Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalizaciónMarcelo Herrera
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datosLalo Osorio
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Examen final de base de datos ii solucionado
Examen final de base de datos ii solucionadoExamen final de base de datos ii solucionado
Examen final de base de datos ii solucionadoBertha Canaviri
 
casos de uso
casos de usocasos de uso
casos de usostill01
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlLic_Vera
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Jazmin Glez.
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 

Was ist angesagt? (20)

Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 
Fundamentos de BD - unidad 3 modelo relacional
Fundamentos de BD - unidad 3 modelo relacionalFundamentos de BD - unidad 3 modelo relacional
Fundamentos de BD - unidad 3 modelo relacional
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datos
 
Procesos e Hilos
Procesos e HilosProcesos e Hilos
Procesos e Hilos
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Examen final de base de datos ii solucionado
Examen final de base de datos ii solucionadoExamen final de base de datos ii solucionado
Examen final de base de datos ii solucionado
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
casos de uso
casos de usocasos de uso
casos de uso
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Sql presentacion
Sql presentacionSql presentacion
Sql presentacion
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 

Ä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

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 

Kürzlich hochgeladen (20)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (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() );