SlideShare una empresa de Scribd logo
2
Lo más leído
6
Lo más leído
7
Lo más leído
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;
Triggers o disparadores en MySQL
Triggers o disparadores en MySQL
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 ;
Triggers o disparadores en MySQL
Triggers o disparadores en MySQL
/* 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

PDF
Arreglos en pseudocodigo 01
PPT
TRIGGERS
PPTX
Triggers
DOCX
SILABO OFIMATICA SECRETARIAL II.docx
PDF
Triggers en BD mysql
PDF
Assignment#02
Arreglos en pseudocodigo 01
TRIGGERS
Triggers
SILABO OFIMATICA SECRETARIAL II.docx
Triggers en BD mysql
Assignment#02

La actualidad más candente (20)

PPTX
Disparadores Trigger En Sql Y My Sql
PPTX
Triggers o disparadores
PPTX
Manejo de triggers en sql server
PDF
Mapa conceptual uml z1-
PPTX
Null / Not Null value
PPTX
Diagrama de clases
PDF
Introduction To Oracle Sql
PPTX
Sql DDL Lenguaje de definición de datos
PPT
DDL - Lenguaje de definición de datos
PPT
Sql group functions
PPTX
Conceptos basicos POO
PDF
Ch04
PDF
PHP Arrays - indexed and associative array.
PDF
Commit&rollback
DOC
Oracle sql material
PPT
Ddl-Lenguaje de definición de datos
PPTX
TRIGGERS O DISPARADORES
PDF
حل اسئلة الكتاب السعودى فى شرح قواعد البيانات اوراكل
Disparadores Trigger En Sql Y My Sql
Triggers o disparadores
Manejo de triggers en sql server
Mapa conceptual uml z1-
Null / Not Null value
Diagrama de clases
Introduction To Oracle Sql
Sql DDL Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
Sql group functions
Conceptos basicos POO
Ch04
PHP Arrays - indexed and associative array.
Commit&rollback
Oracle sql material
Ddl-Lenguaje de definición de datos
TRIGGERS O DISPARADORES
حل اسئلة الكتاب السعودى فى شرح قواعد البيانات اوراكل
Publicidad

Destacado (13)

DOCX
Sesión12 - Trigger (Oracle)
PPT
Disparadores
PDF
Crear y Eliminar Bases de datos en MySQL Workbench
PDF
Tipos de datos en MySQL Workbench
PDF
Instalacion de MySQL Workbench
PDF
Derivada de funciones trigonometricas
PDF
Derivadas de funciones logaritmicas
PPTX
Aprendizaje basado en problemas
PDF
Sistema Masa Resorte
PDF
Ventana de inicio de MySQL Workbench
PDF
Reconociendo el administrador del servidor MySQL Workbench
PPTX
Mapa mental
PDF
Crear conexion a servidor en MySQL Workbench
Sesión12 - Trigger (Oracle)
Disparadores
Crear y Eliminar Bases de datos en MySQL Workbench
Tipos de datos en MySQL Workbench
Instalacion de MySQL Workbench
Derivada de funciones trigonometricas
Derivadas de funciones logaritmicas
Aprendizaje basado en problemas
Sistema Masa Resorte
Ventana de inicio de MySQL Workbench
Reconociendo el administrador del servidor MySQL Workbench
Mapa mental
Crear conexion a servidor en MySQL Workbench
Publicidad

Similar a Triggers o disparadores en MySQL (20)

PPTX
MANEJO DE SENTENCIAS DE DEFINICION
DOCX
Triggers en SQL
PPSX
Curso SQL - Leccion 10
DOCX
8 Guía_Fundamentos de Base de Datos (2).docx
PDF
Curso de SQL Server: implementacion (T-SQL)
DOCX
Sesion05 - Manipulacion de datos (Oracle)
PPT
Tutorial Sql
PPTX
Precentacion de sql visual
PPT
Actualización de bases de datos en MySQL
DOCX
Base de datos en sql
PDF
SQL - Structured Query Language
PDF
Manual SQL SERVER
PDF
SQL For Dummies
PPT
Triggers y Stored Procedures con MicroOLAP Database Designer
DOCX
Base datos mysql y visual basic
DOC
Tarea Querys Sql de Wilmer Alcivar
PDF
1Administracion de Bases de Datos ConocimientoPrevioES.pdf
PPTX
SQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOS
PPTX
Trigger - INSERT- Base de Datos 2 .pptx
DOCX
manejo de sentencias de manipulacion
MANEJO DE SENTENCIAS DE DEFINICION
Triggers en SQL
Curso SQL - Leccion 10
8 Guía_Fundamentos de Base de Datos (2).docx
Curso de SQL Server: implementacion (T-SQL)
Sesion05 - Manipulacion de datos (Oracle)
Tutorial Sql
Precentacion de sql visual
Actualización de bases de datos en MySQL
Base de datos en sql
SQL - Structured Query Language
Manual SQL SERVER
SQL For Dummies
Triggers y Stored Procedures con MicroOLAP Database Designer
Base datos mysql y visual basic
Tarea Querys Sql de Wilmer Alcivar
1Administracion de Bases de Datos ConocimientoPrevioES.pdf
SQL SERVER Y MYSQL - ADMINISTRACIÓN DE BASE DE DATOS
Trigger - INSERT- Base de Datos 2 .pptx
manejo de sentencias de manipulacion

Más de Jair Ospino Ardila (17)

PDF
Cuerpos geométricos
PDF
Derivadas de potencias y funciones exponenciales
PDF
Calculo Diferencial Tips y conceptos fundamentales
PDF
Crear vistas en microsoft access
PDF
Ejercicios de Calculo Multivariable
PDF
Eliminar virus de acceso directo
PDF
Ecuaciones diferenciales
PDF
Calculo superior para ingenieros Gamma Beta
PDF
Funcion beta
PDF
Función gamma
PDF
Distribución de frecuencia
PDF
Creación de tablas y relaciones en mysql workbench
PDF
Creación de tablas y relaciones en MySQL y SQL yog
PDF
Creación de tablas y relaciones en MySQL y wamp server
PDF
consultas en Access no coincidentes
PDF
Solución de Ecuaciones Diferenciales en Simulink
PDF
Full text search
Cuerpos geométricos
Derivadas de potencias y funciones exponenciales
Calculo Diferencial Tips y conceptos fundamentales
Crear vistas en microsoft access
Ejercicios de Calculo Multivariable
Eliminar virus de acceso directo
Ecuaciones diferenciales
Calculo superior para ingenieros Gamma Beta
Funcion beta
Función gamma
Distribución de frecuencia
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 wamp server
consultas en Access no coincidentes
Solución de Ecuaciones Diferenciales en Simulink
Full text search

Último (20)

PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Estrategia de apoyo tecnología grado 9-3
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Diapositiva proyecto de vida, materia catedra
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
CyberOps Associate - Cisco Networking Academy
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPT
Que son las redes de computadores y sus partes
PPTX
Presentación de Redes de Datos modelo osi
PDF
Maste clas de estructura metálica y arquitectura
PDF
taller de informática - LEY DE OHM
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
SAP Transportation Management para LSP, TM140 Col18
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Estrategia de apoyo tecnología grado 9-3
introduccion a las_web en el 2025_mejoras.ppt
Diapositiva proyecto de vida, materia catedra
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
CyberOps Associate - Cisco Networking Academy
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Plantilla para Diseño de Narrativas Transmedia.pdf
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Propuesta BKP servidores con Acronis1.pptx
Que son las redes de computadores y sus partes
Presentación de Redes de Datos modelo osi
Maste clas de estructura metálica y arquitectura
taller de informática - LEY DE OHM
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
SAP Transportation Management para LSP, TM140 Col18

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;
  • 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 ;
  • 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;