SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Guía Sencilla

Jair Ospino Ardila -- jairospino@ingenieros.com
Son procedimientos que se ejecutan
cumple una condición establecida.

automáticamente cuando se

Los triggers pueden ser de:
 Inserción (INSERT)
 Actualización (UPDATE)

 Eliminación (DELETE).
NOTA: Para poder crear el Disparador hay que tener presente:
 Deben existir las Tablas Asociadas a el Disparador
 El Disparador no debe tener un nombre asociado a una palabra
reservada del sistema.
 Se debe previamente modificar el comodín de ejecución de
comandos que esta por defecto (;). para ello utilizamos
DELIMITER @
OJO --> no es obligatorio - @ - puede ser
cualquier comodín
 No se permite dentro de la Sentencia del trigger ejecutar un
comando Select.
 No se admiten más de un trigger que relacionen a una misma
tabla con la misma acción. Hasta ahora versión del Ejemplo
5.5.24 año 2013

DELIMITER @
CREATE trigger nombre_trigger [before, after] [insert, update, delete] ON tabla
For Each Row
Begin
Sentencia a Ejecutar [insert, update, delete]
End;
@
DELIMITER ;
CREATE database IF NOT EXISTS bdTrigger;
USE bdTrigger;

CREATE TABLE IF NOT EXISTS tb_cliente
(
id_orden INT NOT NULL auto_increment,
documento VARCHAR(12),
nombre VARCHAR(25) NOT NULL,
apellido VARCHAR(35)NOT NULL,
telefono VARCHAR(15),
email VARCHAR(50),
PRIMARY KEY(id_orden,documento)
)engine=InnoDB;

/* En esta tabla guardaremos el respaldo de los datos luego de ejecutar una
instrucción en la tabla tb_cliente mediante el Disparador*/
CREATE TABLE IF NOT EXISTS tb_seguridad_cliente
(
documento_c VARCHAR(12),
nombre_c VARCHAR(25),
apellido_c VARCHAR(35),
telefono_c VARCHAR(15),
email_c VARCHAR(50),
fecha_accion_c DATE,
accion_c VARCHAR(11) /* Agregado, Modificado, Cancelado-0-(Eliminado)*/
)engine=InnoDB;
NOTA:


El comando new nos permite referenciar al valor que viene por primera
vez, seguido por el nombre del campo que deseamos tomar de la tabla a
la cual definimos en el disparador al momento de crearlo (tb_cliente)



Si lo que deseamos es INSERTAR (insert) solamente podemos utilizamos
el comando new.



Si lo que deseamos es ACTUALIZAR (update) podremos utilizar los dos
comandos permitidos new y old.



Si usamos -- old -- hacemos referencia al dato que contenía el registro
antes de modificarlo.



si lo que deseamos es ELIMINAR (delete) solamente podemos utilizar el
comando old.

/* Trigger que se acciona luego de INSERTAR algún registro en la Tabla
tb_cliente*/
DELIMITER @
CREATE TRIGGER tr_insert_cliente BEFORE INSERT ON tb_cliente
FOR EACH ROW
BEGIN
INSERT INTO tb_seguridad_cliente VALUES ( new.documento, new.nombre,
new.apellido, new.telefono, new.email,
curdate(),'Agregado');
END;
@
DELIMITER ;
/* Trigger que se acciona luego de ACTUALIZAR algún registro en la
Tabla tb_cliente*/
DELIMITER @
CREATE TRIGGER tr_update_cliente BEFORE UPDATE ON tb_cliente
FOR EACH ROW
BEGIN
INSERT INTO tb_seguridad_cliente VALUES (new.documento, new.nombre,
new.apellido, new.telefono, new.email, curdate(), 'Modificado');
END;
@
DELIMITER ;

/* Trigger que se acciona luego de ELIMINAR algún registro en la Tabla
tb_cliente*/

DELIMITER @
CREATE TRIGGER tr_delete_cliente BEFORE DELETE ON tb_cliente
FOR EACH ROW
BEGIN
INSERT INTO tb_seguridad_cliente VALUES(old.documento, old.nombre,
old.apellido, old.telefono, old.email, curdate(),'Eliminado');
END;
@
DELIMITER ;
/* Insertamos clientes para verificar que el Disparador
-- tr_insert_cliente -- Funcione correctamente */

INSERT INTO tb_cliente(documento,nombre,apellido,telefono,email)
VALUES ('1065 -1','jair cliente 1','apellido cliente 1','tel c1','email@cliente1'),
('1065 -2','marcela cliente 2','apellido cliente 2','tel c2','email@cliente2'),
('1065 -3','damaris cliente 3','apellido cliente 3','tel c3','email@cliente3'),
('1065 -4','emeterio cliente 4','apellido cliente 4','tel c4','email@cliente4'),
('1065 -5','diana cliente 5','apellido cliente 5','tel c5','email@cliente5'),
('1065 -6','ruber cliente 6','apellido cliente 6','tel c6','email@cliente6'),
('1065 -7','yuleidi cliente 7','apellido cliente 7','tel c7','email@cliente7'),
('1065 -8','vianeth cliente 8','apellido cliente 8','tel c8','email@cliente8'),
('1065 -9','lucia cliente 9','apellido cliente 9','tel c9','email@cliente9'),
('1065 -10','ismael cliente 10','apellido cliente 10','tel c10','email@cliente10'),
('1065 -11','justa cliente 11','apellido cliente 11','tel c11','email@cliente11'),
('1065 -12','sergio cliente 12','apellido cliente 12','tel c12','email@cliente12' );
/* Modificamos clientes para verificar que el Dispardor
-- tr_update_cliente -- Funcione correctamente */
UPDATE tb_cliente SET documento='i065 -mod', nombre='nombre j22 mod',
apellido='apellido mod', telefono='tel mod' WHERE id_orden = 7;

/* Eliminamos clientes para verificar que el Dispardor
-- tr_delete_cliente -- Funcione correctamente */
DELETE FROM tb_cliente WHERE id_orden = 9;
/* Ahora si consultamos la tabla de tb_seguridad_cliente podremos
observar que automáticamente se han guardado los datos, sin
necesidad de hacerlo mediante código otra vez */
SELECT DISTINCT(documento_c), nombre_c, apellido_c, accion_c FROM
tb_seguridad_cliente;

/* Para MOSTRAR los Disparadores - triggers empleamos el
comando: Show triggers; */
Show triggers;
/* Para BORRAR los Disparadores - triggers empleamos el comando:
Drop trigger nombre_trigger; */
DROP TRIGGER tr_cliente;

Más contenido relacionado

La actualidad más candente

Metodología diseño físico de bases de datos
Metodología diseño físico de bases de datosMetodología diseño físico de bases de datos
Metodología diseño físico de bases de datos
UTPL UTPL
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
testgrupocomex
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
Boris Salleg
 
Triggers o disparadores
Triggers o disparadoresTriggers o disparadores
Triggers o disparadores
Pablo Jose
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
josecuartas
 

La actualidad más candente (20)

Metodología diseño físico de bases de datos
Metodología diseño físico de bases de datosMetodología diseño físico de bases de datos
Metodología diseño físico de bases de datos
 
Triggers
TriggersTriggers
Triggers
 
Ddl & dml commands
Ddl & dml commandsDdl & dml commands
Ddl & dml commands
 
Trigger Data Base
Trigger Data BaseTrigger Data Base
Trigger Data Base
 
Sql Commands_Dr.R.Shalini.ppt
Sql Commands_Dr.R.Shalini.pptSql Commands_Dr.R.Shalini.ppt
Sql Commands_Dr.R.Shalini.ppt
 
MS Sql Server: Creating Views
MS Sql Server: Creating ViewsMS Sql Server: Creating Views
MS Sql Server: Creating Views
 
Procedure and Functions in pl/sql
Procedure and Functions in pl/sqlProcedure and Functions in pl/sql
Procedure and Functions in pl/sql
 
Introduction to-sql
Introduction to-sqlIntroduction to-sql
Introduction to-sql
 
Sql commands
Sql commandsSql commands
Sql commands
 
Curso Básico de Pl Sql Oracle
Curso Básico de Pl Sql OracleCurso Básico de Pl Sql Oracle
Curso Básico de Pl Sql Oracle
 
Sql presentacion
Sql presentacionSql presentacion
Sql presentacion
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Entorno de Visual Basic 2010
Entorno de Visual Basic 2010Entorno de Visual Basic 2010
Entorno de Visual Basic 2010
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Triggers o disparadores
Triggers o disparadoresTriggers o disparadores
Triggers o disparadores
 
MySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs AcademyMySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs Academy
 
Plsql y paquetes
Plsql y paquetesPlsql y paquetes
Plsql y paquetes
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
Procedimientos Almacenados SQL SEVER.pptx
Procedimientos Almacenados SQL SEVER.pptxProcedimientos Almacenados SQL SEVER.pptx
Procedimientos Almacenados SQL SEVER.pptx
 

Destacado

Disparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My SqlDisparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My Sql
yareli
 

Destacado (14)

Disparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My SqlDisparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My Sql
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Crear y Eliminar Bases de datos en MySQL Workbench
Crear y Eliminar  Bases de datos en MySQL WorkbenchCrear y Eliminar  Bases de datos en MySQL Workbench
Crear y Eliminar Bases de datos en MySQL Workbench
 
Tipos de datos en MySQL Workbench
Tipos de datos en  MySQL  WorkbenchTipos de datos en  MySQL  Workbench
Tipos de datos en MySQL Workbench
 
Instalacion de MySQL Workbench
Instalacion de MySQL  WorkbenchInstalacion de MySQL  Workbench
Instalacion de MySQL Workbench
 
Derivada de funciones trigonometricas
Derivada de funciones trigonometricas Derivada de funciones trigonometricas
Derivada de funciones trigonometricas
 
Derivadas de funciones logaritmicas
Derivadas de funciones logaritmicas Derivadas de funciones logaritmicas
Derivadas de funciones logaritmicas
 
Aprendizaje basado en problemas
Aprendizaje basado en problemasAprendizaje basado en problemas
Aprendizaje basado en problemas
 
Sistema Masa Resorte
Sistema Masa ResorteSistema Masa Resorte
Sistema Masa Resorte
 
Ventana de inicio de MySQL Workbench
Ventana de inicio de MySQL WorkbenchVentana de inicio de MySQL Workbench
Ventana de inicio de MySQL Workbench
 
Reconociendo el administrador del servidor MySQL Workbench
Reconociendo el  administrador  del  servidor MySQL WorkbenchReconociendo el  administrador  del  servidor MySQL Workbench
Reconociendo el administrador del servidor MySQL Workbench
 
Mapa mental
Mapa mentalMapa mental
Mapa mental
 
Crear conexion a servidor en MySQL Workbench
Crear conexion a servidor en  MySQL WorkbenchCrear conexion a servidor en  MySQL Workbench
Crear conexion a servidor en MySQL Workbench
 

Similar a Triggers o disparadores en MySQL

Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
Luis Jherry
 
Disparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My SqlDisparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My Sql
guest9c891000
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
Oca srl
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
Luis Jherry
 

Similar a Triggers o disparadores en MySQL (20)

Charla Mysql
Charla MysqlCharla Mysql
Charla Mysql
 
Trigger - INSERT- Base de Datos 2 .pptx
Trigger - INSERT- Base de Datos 2  .pptxTrigger - INSERT- Base de Datos 2  .pptx
Trigger - INSERT- Base de Datos 2 .pptx
 
Dbd triggers
Dbd triggersDbd triggers
Dbd triggers
 
Tutorial disparadores
Tutorial disparadoresTutorial disparadores
Tutorial disparadores
 
Actualización de bases de datos en MySQL
Actualización de bases de datos en MySQLActualización de bases de datos en MySQL
Actualización de bases de datos en MySQL
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Disparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My SqlDisparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My Sql
 
Presentacio Sql 1
Presentacio Sql 1Presentacio Sql 1
Presentacio Sql 1
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
 
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
 
Postgres trigger
Postgres triggerPostgres trigger
Postgres trigger
 
1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones
 
Disparadores.pptx
Disparadores.pptxDisparadores.pptx
Disparadores.pptx
 
Cheat_MySQL.docx
Cheat_MySQL.docxCheat_MySQL.docx
Cheat_MySQL.docx
 
Apuntes 3
Apuntes 3Apuntes 3
Apuntes 3
 
Triggers-Activadores
Triggers-ActivadoresTriggers-Activadores
Triggers-Activadores
 
Unidad iii dql
Unidad iii dqlUnidad iii dql
Unidad iii dql
 
Trigger activadores
Trigger    activadoresTrigger    activadores
Trigger activadores
 
San triggers
San triggersSan triggers
San triggers
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 

Más de Jair Ospino Ardila

Ejercicios de Calculo Multivariable
Ejercicios de Calculo MultivariableEjercicios de Calculo Multivariable
Ejercicios de Calculo Multivariable
Jair Ospino Ardila
 
consultas en Access no coincidentes
consultas en Access no coincidentesconsultas en Access no coincidentes
consultas en Access no coincidentes
Jair Ospino Ardila
 
Solución de Ecuaciones Diferenciales en Simulink
Solución de Ecuaciones Diferenciales en SimulinkSolución de Ecuaciones Diferenciales en Simulink
Solución de Ecuaciones Diferenciales en Simulink
Jair Ospino Ardila
 

Más de Jair Ospino Ardila (17)

Cuerpos geométricos
Cuerpos geométricosCuerpos geométricos
Cuerpos geométricos
 
Derivadas de potencias y funciones exponenciales
Derivadas de potencias y funciones exponenciales Derivadas de potencias y funciones exponenciales
Derivadas de potencias y funciones exponenciales
 
Calculo Diferencial Tips y conceptos fundamentales
Calculo Diferencial Tips y conceptos fundamentalesCalculo Diferencial Tips y conceptos fundamentales
Calculo Diferencial Tips y conceptos fundamentales
 
Crear vistas en microsoft access
Crear vistas en microsoft accessCrear vistas en microsoft access
Crear vistas en microsoft access
 
Ejercicios de Calculo Multivariable
Ejercicios de Calculo MultivariableEjercicios de Calculo Multivariable
Ejercicios de Calculo Multivariable
 
Eliminar virus de acceso directo
Eliminar virus de acceso directoEliminar virus de acceso directo
Eliminar virus de acceso directo
 
Ecuaciones diferenciales
Ecuaciones diferencialesEcuaciones diferenciales
Ecuaciones diferenciales
 
Calculo superior para ingenieros Gamma Beta
Calculo superior para ingenieros Gamma BetaCalculo superior para ingenieros Gamma Beta
Calculo superior para ingenieros Gamma Beta
 
Funcion beta
Funcion betaFuncion beta
Funcion beta
 
Función gamma
Función gammaFunción gamma
Función gamma
 
Distribución de frecuencia
Distribución de frecuenciaDistribución de frecuencia
Distribución de frecuencia
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 
Creación de tablas y relaciones en MySQL y SQL yog
Creación de tablas y relaciones en MySQL y SQL yogCreación de tablas y relaciones en MySQL y SQL yog
Creación de tablas y relaciones en MySQL y SQL yog
 
Creación de tablas y relaciones en MySQL y wamp server
Creación de tablas y relaciones en MySQL y  wamp serverCreación de tablas y relaciones en MySQL y  wamp server
Creación de tablas y relaciones en MySQL y wamp server
 
consultas en Access no coincidentes
consultas en Access no coincidentesconsultas en Access no coincidentes
consultas en Access no coincidentes
 
Solución de Ecuaciones Diferenciales en Simulink
Solución de Ecuaciones Diferenciales en SimulinkSolución de Ecuaciones Diferenciales en Simulink
Solución de Ecuaciones Diferenciales en Simulink
 
Full text search
Full text search Full text search
Full text search
 

Último

editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
ssusere34b451
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
EdwinGarca59
 

Último (20)

Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docx
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
¡Ya basta! Sanidad Interior - Angela Kellenberger.pdf
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blog
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbxCARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
CARPETA PEDAGOGICA DE TOE.docbbbbbbbbbbbx
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 

Triggers o disparadores en MySQL

  • 1. Guía Sencilla Jair Ospino Ardila -- jairospino@ingenieros.com
  • 2. Son procedimientos que se ejecutan cumple una condición establecida. automáticamente cuando se Los triggers pueden ser de:  Inserción (INSERT)  Actualización (UPDATE)  Eliminación (DELETE). NOTA: Para poder crear el Disparador hay que tener presente:  Deben existir las Tablas Asociadas a el Disparador  El Disparador no debe tener un nombre asociado a una palabra reservada del sistema.  Se debe previamente modificar el comodín de ejecución de comandos que esta por defecto (;). para ello utilizamos DELIMITER @ OJO --> no es obligatorio - @ - puede ser cualquier comodín  No se permite dentro de la Sentencia del trigger ejecutar un comando Select.  No se admiten más de un trigger que relacionen a una misma tabla con la misma acción. Hasta ahora versión del Ejemplo 5.5.24 año 2013 DELIMITER @ CREATE trigger nombre_trigger [before, after] [insert, update, delete] ON tabla For Each Row Begin Sentencia a Ejecutar [insert, update, delete] End; @ DELIMITER ;
  • 3. CREATE database IF NOT EXISTS bdTrigger; USE bdTrigger; CREATE TABLE IF NOT EXISTS tb_cliente ( id_orden INT NOT NULL auto_increment, documento VARCHAR(12), nombre VARCHAR(25) NOT NULL, apellido VARCHAR(35)NOT NULL, telefono VARCHAR(15), email VARCHAR(50), PRIMARY KEY(id_orden,documento) )engine=InnoDB; /* En esta tabla guardaremos el respaldo de los datos luego de ejecutar una instrucción en la tabla tb_cliente mediante el Disparador*/ CREATE TABLE IF NOT EXISTS tb_seguridad_cliente ( documento_c VARCHAR(12), nombre_c VARCHAR(25), apellido_c VARCHAR(35), telefono_c VARCHAR(15), email_c VARCHAR(50), fecha_accion_c DATE, accion_c VARCHAR(11) /* Agregado, Modificado, Cancelado-0-(Eliminado)*/ )engine=InnoDB;
  • 4.
  • 5.
  • 6. NOTA:  El comando new nos permite referenciar al valor que viene por primera vez, seguido por el nombre del campo que deseamos tomar de la tabla a la cual definimos en el disparador al momento de crearlo (tb_cliente)  Si lo que deseamos es INSERTAR (insert) solamente podemos utilizamos el comando new.  Si lo que deseamos es ACTUALIZAR (update) podremos utilizar los dos comandos permitidos new y old.  Si usamos -- old -- hacemos referencia al dato que contenía el registro antes de modificarlo.  si lo que deseamos es ELIMINAR (delete) solamente podemos utilizar el comando old. /* Trigger que se acciona luego de INSERTAR algún registro en la Tabla tb_cliente*/ DELIMITER @ CREATE TRIGGER tr_insert_cliente BEFORE INSERT ON tb_cliente FOR EACH ROW BEGIN INSERT INTO tb_seguridad_cliente VALUES ( new.documento, new.nombre, new.apellido, new.telefono, new.email, curdate(),'Agregado'); END; @ DELIMITER ;
  • 7. /* Trigger que se acciona luego de ACTUALIZAR algún registro en la Tabla tb_cliente*/ DELIMITER @ CREATE TRIGGER tr_update_cliente BEFORE UPDATE ON tb_cliente FOR EACH ROW BEGIN INSERT INTO tb_seguridad_cliente VALUES (new.documento, new.nombre, new.apellido, new.telefono, new.email, curdate(), 'Modificado'); END; @ DELIMITER ; /* Trigger que se acciona luego de ELIMINAR algún registro en la Tabla tb_cliente*/ DELIMITER @ CREATE TRIGGER tr_delete_cliente BEFORE DELETE ON tb_cliente FOR EACH ROW BEGIN INSERT INTO tb_seguridad_cliente VALUES(old.documento, old.nombre, old.apellido, old.telefono, old.email, curdate(),'Eliminado'); END; @ DELIMITER ;
  • 8.
  • 9.
  • 10. /* Insertamos clientes para verificar que el Disparador -- tr_insert_cliente -- Funcione correctamente */ INSERT INTO tb_cliente(documento,nombre,apellido,telefono,email) VALUES ('1065 -1','jair cliente 1','apellido cliente 1','tel c1','email@cliente1'), ('1065 -2','marcela cliente 2','apellido cliente 2','tel c2','email@cliente2'), ('1065 -3','damaris cliente 3','apellido cliente 3','tel c3','email@cliente3'), ('1065 -4','emeterio cliente 4','apellido cliente 4','tel c4','email@cliente4'), ('1065 -5','diana cliente 5','apellido cliente 5','tel c5','email@cliente5'), ('1065 -6','ruber cliente 6','apellido cliente 6','tel c6','email@cliente6'), ('1065 -7','yuleidi cliente 7','apellido cliente 7','tel c7','email@cliente7'), ('1065 -8','vianeth cliente 8','apellido cliente 8','tel c8','email@cliente8'), ('1065 -9','lucia cliente 9','apellido cliente 9','tel c9','email@cliente9'), ('1065 -10','ismael cliente 10','apellido cliente 10','tel c10','email@cliente10'), ('1065 -11','justa cliente 11','apellido cliente 11','tel c11','email@cliente11'), ('1065 -12','sergio cliente 12','apellido cliente 12','tel c12','email@cliente12' );
  • 11. /* Modificamos clientes para verificar que el Dispardor -- tr_update_cliente -- Funcione correctamente */ UPDATE tb_cliente SET documento='i065 -mod', nombre='nombre j22 mod', apellido='apellido mod', telefono='tel mod' WHERE id_orden = 7; /* Eliminamos clientes para verificar que el Dispardor -- tr_delete_cliente -- Funcione correctamente */ DELETE FROM tb_cliente WHERE id_orden = 9;
  • 12. /* Ahora si consultamos la tabla de tb_seguridad_cliente podremos observar que automáticamente se han guardado los datos, sin necesidad de hacerlo mediante código otra vez */ SELECT DISTINCT(documento_c), nombre_c, apellido_c, accion_c FROM tb_seguridad_cliente; /* Para MOSTRAR los Disparadores - triggers empleamos el comando: Show triggers; */ Show triggers;
  • 13. /* Para BORRAR los Disparadores - triggers empleamos el comando: Drop trigger nombre_trigger; */ DROP TRIGGER tr_cliente;