SlideShare una empresa de Scribd logo
1 de 12
DISPARADORES TRIGGER EN SQL Y MY SQL. SQL: Sintaxis general de un disparador CREATE [OR REPLACE] TRIGGER nombre [temporalidad del evento] [granularidad del evento] [WHEN condición] BEGIN cuerpo del trigger END nombre; / CREATE
*CREATE [OR REPLACE] TRIGGER nombre Crea o reemplaza un disparador con el nombre especificado *[temporalidad del evento] Puede tomar dos valores: BEFORE ó AFTER que indicará si el cuerpo del disparador debe ejecutarse antes o después del evento que causa la activación del disparador. Ambos valores pueden aplicarse tanto para disparadores a nivel de fila como a nivel de orden. BEFORE/AFTER debe acompañarse de la operación que causa la activación del disparador. Estas pueden ser operaciones de inserción (INSERT) Y/O borrado (DELETE) y/o modificación (UPDATE) respecto a una tabla o respecto a una columna de una tabla. Cuando se quiere especificar más operación, estas se pueden unir utilizando los operadores OR y AND. Por ejemplo: BEFORE INSERT ON empleado BEFORE INSERT OR DELETE ON empleado.
*[granularidad del evento] [WHEN condición] Permite distinguir si el disparador es a nivel de fila o a nivel de orden. Un disparador se define a nivel de fila cuando el cuerpo del disparador se debe aplicar fila a fila de la tabla afectada y se define a nivel de orden cuando se debe aplicar a toda la tabla a la vez. Si queremos definir el disparador a nivel de fila, la granularidad deberá especificarse con la cláusula FOR EACH ROW a la que habrá que acompañar de la condición que debe cumplir la fila para aplicar el cuerpo del disparador. Esta condición se indica en la orden SQL mediante la cláusula WHEN condición. Cuando no exista definición del granularidad del evento, significará que el disparador está definido a nivel de orden.
*BEGIN cuerpo del trigger END nombre; Dentro del cuerpo de un disparador podemos incluir sentencias de borrado (DELETE), inserción (INSERT) o modificación (UPDATE) pero también se puede poner cualquier otra sentencia SQL (SELECT..) e incluso un programa escritoen PL/SQL. Esta última opción se verá en la siguiente práctica. Dentro de este cuerpo también se puede hacer referencia a las variables OLD y NEW.
Órdenes de disparadores Eliminación de un disparador DROP TRIGGER nombre; Habilitación/deshabilitación de un disparador ALTER TRIGGER nombre [ENABLE|DISABLE] Habilitación/deshabilitación de todos los disparadores de una tabla: ALTER TABLE nombretabla [ENABLE|DISABLE] ALL TRIGGERS; Ver todos los disparadores definidos por un usuario SELECT TRIGGER_NAME FROM USER_TRIGGERS Ver el cuerpo de un disparador: SELECT TRIGGER_BODY FROM USER_TRIGGERS WHERE TRIGGER_NAME = ‘nombre_disparador’; Ver la descripción de un disparador: SELECT DESCRIPTION FROM USER_TRIGGERS WHERE TRIGGER_NAME = ‘nombre_disparador’;
Triggeren MySQL
¿Qué es un trigger o disparador? Un trigger o disparador es un objeto de base de datos que se asocia a una tabla y se activa cuando se produce algún evento sobre dicha tabla.
¿Cómo crear un trigger en MySQL? La sintaxis básica para crear un trigger en MySQL es la siguiente: CREATE TRIGGER nombre_trigger{BEFORE|AFTER} {INSERT|UPDATE|DELETE}ON nombre_tablaFOR EACH ROW BEGINsentencias_sql;END;
BEFORE|AFTER: especifican cuando se dispara el trigger (antes de ejecutar la sentencia o después) INSERT|UPDATE|DELETE: especifican el evento que disparará el trigger ON nombre_tabla: indica la tabla sobre la que actúa el trigger sentencias_sql:son las sentencias que se ejecutarán cuando se active el trigger
Ejemplo: Creamos 3 disparadores sobre la tabla de usuarios, estos nos dirán las acciones que se realicen sobre esta (inserción, modificación o borrado).La estructura de las tablas serán las siguientes: /* Creamos la tabla de acciones*/ CREATETABLE acciones( fecha DATE, hora TIME, accionVARCHAR(50), idusuarioint ); /*Creamos la tabla de usuarios*/ CREATETABLE usuarios( idusuariointegerPRIMARY KEY, nombre VARCHAR(50), apellido VARCHAR(50) );
Las sentencias para los disparadores son: /*Disparador para el registro de inserciones*/ DELIMITER | CREATETRIGGERinser_usuarios BEFORE INSERTONusuarios FOR EACH ROWBEGIN INSERTINTOaccionesVALUES(CURDATE(),CURTIME(),'Registroinsertado',new.idusuario); END; | DELIMITER ;   /*Disparador para el registro modificado*/ DELIMITER | CREATETRIGGERupdate_usuarios BEFORE UPDATEONusuarios FOR EACH ROWBEGIN INSERTINTOaccionesVALUES(CURDATE(),CURTIME(),'RegistroModificado',old.idusuario); END; | DELIMITER ;   /*Disparador para el registro eliminado*/   DELIMITER | CREATETRIGGERdelete_usuarios BEFORE DELETEONusuarios FOR EACH ROWBEGIN INSERTINTO acciones VALUES(CURDATE(),CURTIME(),'Registro eliminado',old.idusuario); END; | DELIMITER ;
Una pequeña explicación de las sentencias utilizadas es: DELIMITER: los disparadores (Triggers), están formados por varias instrucciones, por lo tanto, antes de comenzar su definición, debes especificar qué carácter delimita (o separa) siguiente. CREATE TRIGGER: Es la sentencia de creación del disparador. BEFORE: Indica el momento de acción del disparador DELETE: Indica el evento que activará al disparador FOR EACH ROW: Define lo que se ejecutará cada vez que el disparador se active, lo cual ocurre una vez por cada fila afectada por la sentencia activadora

Más contenido relacionado

La actualidad más candente (18)

Semana 12 y 13 subprogramas triggers
Semana 12 y 13 subprogramas triggersSemana 12 y 13 subprogramas triggers
Semana 12 y 13 subprogramas triggers
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Pl
PlPl
Pl
 
Cursores
CursoresCursores
Cursores
 
MANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICIONMANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICION
 
Cursores
CursoresCursores
Cursores
 
TRIGGER-ACTIVADORES
TRIGGER-ACTIVADORESTRIGGER-ACTIVADORES
TRIGGER-ACTIVADORES
 
Sentencias SQL Cristian Benalcázar
Sentencias SQL Cristian BenalcázarSentencias SQL Cristian Benalcázar
Sentencias SQL Cristian Benalcázar
 
Subconsultas
SubconsultasSubconsultas
Subconsultas
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Triggers
TriggersTriggers
Triggers
 
SETENCIAS SQL
SETENCIAS SQLSETENCIAS SQL
SETENCIAS SQL
 
Sql Setencias
Sql SetenciasSql Setencias
Sql Setencias
 
Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 
Seleccion de datos
Seleccion de datosSeleccion de datos
Seleccion de datos
 
Curso SQL - Leccion 6
Curso SQL - Leccion 6Curso SQL - Leccion 6
Curso SQL - Leccion 6
 
Inserción de datos y selección de datos
Inserción de datos y selección de datosInserción de datos y selección de datos
Inserción de datos y selección de datos
 
Subconsultas
SubconsultasSubconsultas
Subconsultas
 

Destacado

gestion de datos de informacion
gestion de datos de informaciongestion de datos de informacion
gestion de datos de informacionPedro Kent
 
Oracle
OracleOracle
Oraclemire20
 
Presentacion oracle9 i
Presentacion oracle9 iPresentacion oracle9 i
Presentacion oracle9 ilorena duque
 
Tema 3 lenguaje sql t-sql 2008
Tema 3   lenguaje sql t-sql 2008Tema 3   lenguaje sql t-sql 2008
Tema 3 lenguaje sql t-sql 2008Martin Cabanillas
 
Procedimiento básico de interacción con una base de datos
Procedimiento básico de interacción con una base de datosProcedimiento básico de interacción con una base de datos
Procedimiento básico de interacción con una base de datosmiguelangelvillelli
 
PL SQL Diplomado Oracle
PL SQL Diplomado OraclePL SQL Diplomado Oracle
PL SQL Diplomado OracleUzziel Chaidez
 
Administración de base de datos oracle - sesion 7
Administración de base de datos oracle - sesion 7Administración de base de datos oracle - sesion 7
Administración de base de datos oracle - sesion 7Sefira111
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Alexander Calderón
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)José Toro
 
Levantamiento de datos para empresas
Levantamiento de datos para empresasLevantamiento de datos para empresas
Levantamiento de datos para empresasGrupo Herblan
 
Introduccion a la Arquitectura de Oracle. Z052 02
Introduccion a la Arquitectura de Oracle. Z052 02Introduccion a la Arquitectura de Oracle. Z052 02
Introduccion a la Arquitectura de Oracle. Z052 02Alexander Calderón
 
ticsIncorporación de-las-tic-en-el-sector-productivo
ticsIncorporación de-las-tic-en-el-sector-productivoticsIncorporación de-las-tic-en-el-sector-productivo
ticsIncorporación de-las-tic-en-el-sector-productivoGalo Fabara Vargas
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)José Toro
 

Destacado (20)

gestion de datos de informacion
gestion de datos de informaciongestion de datos de informacion
gestion de datos de informacion
 
Oracle
OracleOracle
Oracle
 
Presentacion oracle9 i
Presentacion oracle9 iPresentacion oracle9 i
Presentacion oracle9 i
 
Tema 3 lenguaje sql t-sql 2008
Tema 3   lenguaje sql t-sql 2008Tema 3   lenguaje sql t-sql 2008
Tema 3 lenguaje sql t-sql 2008
 
Examen Sandra U Israel Oracle
Examen Sandra U Israel OracleExamen Sandra U Israel Oracle
Examen Sandra U Israel Oracle
 
Oracle Web Util
Oracle Web UtilOracle Web Util
Oracle Web Util
 
Paquete
PaquetePaquete
Paquete
 
Procedimiento básico de interacción con una base de datos
Procedimiento básico de interacción con una base de datosProcedimiento básico de interacción con una base de datos
Procedimiento básico de interacción con una base de datos
 
PL SQL Diplomado Oracle
PL SQL Diplomado OraclePL SQL Diplomado Oracle
PL SQL Diplomado Oracle
 
Administración de base de datos oracle - sesion 7
Administración de base de datos oracle - sesion 7Administración de base de datos oracle - sesion 7
Administración de base de datos oracle - sesion 7
 
Trigger Data Base
Trigger Data BaseTrigger Data Base
Trigger Data Base
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)
 
Levantamiento de datos para empresas
Levantamiento de datos para empresasLevantamiento de datos para empresas
Levantamiento de datos para empresas
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Que es una empresa de base tecnologica
Que es una empresa de base tecnologicaQue es una empresa de base tecnologica
Que es una empresa de base tecnologica
 
Introduccion a la Arquitectura de Oracle. Z052 02
Introduccion a la Arquitectura de Oracle. Z052 02Introduccion a la Arquitectura de Oracle. Z052 02
Introduccion a la Arquitectura de Oracle. Z052 02
 
ticsIncorporación de-las-tic-en-el-sector-productivo
ticsIncorporación de-las-tic-en-el-sector-productivoticsIncorporación de-las-tic-en-el-sector-productivo
ticsIncorporación de-las-tic-en-el-sector-productivo
 
Trigger
TriggerTrigger
Trigger
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)
 

Similar a Disparadores Trigger En Sql Y My Sql

Similar a Disparadores Trigger En Sql Y My Sql (20)

Triggers o disparadores
Triggers o disparadoresTriggers o disparadores
Triggers o disparadores
 
Disparadores.pptx
Disparadores.pptxDisparadores.pptx
Disparadores.pptx
 
Postgres trigger
Postgres triggerPostgres trigger
Postgres trigger
 
Dbd triggers
Dbd triggersDbd triggers
Dbd triggers
 
database trig
database trigdatabase trig
database trig
 
Tutorial disparadores
Tutorial disparadoresTutorial disparadores
Tutorial disparadores
 
Bd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa TriggersBd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa Triggers
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datos
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Triggr
TriggrTriggr
Triggr
 
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
 
San triggers
San triggersSan triggers
San triggers
 
TRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORESTRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORES
 
CREACION DE TRIGGERS.pptx
CREACION DE TRIGGERS.pptxCREACION DE TRIGGERS.pptx
CREACION DE TRIGGERS.pptx
 
Trigger activadores
Trigger activadoresTrigger activadores
Trigger activadores
 
TRIGGERS Cliente - servidor
TRIGGERS Cliente - servidorTRIGGERS Cliente - servidor
TRIGGERS Cliente - servidor
 
Triggers o disparadores en MySQL
Triggers o disparadores en MySQL Triggers o disparadores en MySQL
Triggers o disparadores en MySQL
 
Disparadores 1213820550525607-9
Disparadores 1213820550525607-9Disparadores 1213820550525607-9
Disparadores 1213820550525607-9
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 

Último

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
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
 
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
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.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
 
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
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 
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
 
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
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
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
 
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
 

Último (20)

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
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
 
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
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.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
 
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
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
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.
 
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
 
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
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
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
 
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)
 

Disparadores Trigger En Sql Y My Sql

  • 1. DISPARADORES TRIGGER EN SQL Y MY SQL. SQL: Sintaxis general de un disparador CREATE [OR REPLACE] TRIGGER nombre [temporalidad del evento] [granularidad del evento] [WHEN condición] BEGIN cuerpo del trigger END nombre; / CREATE
  • 2. *CREATE [OR REPLACE] TRIGGER nombre Crea o reemplaza un disparador con el nombre especificado *[temporalidad del evento] Puede tomar dos valores: BEFORE ó AFTER que indicará si el cuerpo del disparador debe ejecutarse antes o después del evento que causa la activación del disparador. Ambos valores pueden aplicarse tanto para disparadores a nivel de fila como a nivel de orden. BEFORE/AFTER debe acompañarse de la operación que causa la activación del disparador. Estas pueden ser operaciones de inserción (INSERT) Y/O borrado (DELETE) y/o modificación (UPDATE) respecto a una tabla o respecto a una columna de una tabla. Cuando se quiere especificar más operación, estas se pueden unir utilizando los operadores OR y AND. Por ejemplo: BEFORE INSERT ON empleado BEFORE INSERT OR DELETE ON empleado.
  • 3. *[granularidad del evento] [WHEN condición] Permite distinguir si el disparador es a nivel de fila o a nivel de orden. Un disparador se define a nivel de fila cuando el cuerpo del disparador se debe aplicar fila a fila de la tabla afectada y se define a nivel de orden cuando se debe aplicar a toda la tabla a la vez. Si queremos definir el disparador a nivel de fila, la granularidad deberá especificarse con la cláusula FOR EACH ROW a la que habrá que acompañar de la condición que debe cumplir la fila para aplicar el cuerpo del disparador. Esta condición se indica en la orden SQL mediante la cláusula WHEN condición. Cuando no exista definición del granularidad del evento, significará que el disparador está definido a nivel de orden.
  • 4. *BEGIN cuerpo del trigger END nombre; Dentro del cuerpo de un disparador podemos incluir sentencias de borrado (DELETE), inserción (INSERT) o modificación (UPDATE) pero también se puede poner cualquier otra sentencia SQL (SELECT..) e incluso un programa escritoen PL/SQL. Esta última opción se verá en la siguiente práctica. Dentro de este cuerpo también se puede hacer referencia a las variables OLD y NEW.
  • 5. Órdenes de disparadores Eliminación de un disparador DROP TRIGGER nombre; Habilitación/deshabilitación de un disparador ALTER TRIGGER nombre [ENABLE|DISABLE] Habilitación/deshabilitación de todos los disparadores de una tabla: ALTER TABLE nombretabla [ENABLE|DISABLE] ALL TRIGGERS; Ver todos los disparadores definidos por un usuario SELECT TRIGGER_NAME FROM USER_TRIGGERS Ver el cuerpo de un disparador: SELECT TRIGGER_BODY FROM USER_TRIGGERS WHERE TRIGGER_NAME = ‘nombre_disparador’; Ver la descripción de un disparador: SELECT DESCRIPTION FROM USER_TRIGGERS WHERE TRIGGER_NAME = ‘nombre_disparador’;
  • 7. ¿Qué es un trigger o disparador? Un trigger o disparador es un objeto de base de datos que se asocia a una tabla y se activa cuando se produce algún evento sobre dicha tabla.
  • 8. ¿Cómo crear un trigger en MySQL? La sintaxis básica para crear un trigger en MySQL es la siguiente: CREATE TRIGGER nombre_trigger{BEFORE|AFTER} {INSERT|UPDATE|DELETE}ON nombre_tablaFOR EACH ROW BEGINsentencias_sql;END;
  • 9. BEFORE|AFTER: especifican cuando se dispara el trigger (antes de ejecutar la sentencia o después) INSERT|UPDATE|DELETE: especifican el evento que disparará el trigger ON nombre_tabla: indica la tabla sobre la que actúa el trigger sentencias_sql:son las sentencias que se ejecutarán cuando se active el trigger
  • 10. Ejemplo: Creamos 3 disparadores sobre la tabla de usuarios, estos nos dirán las acciones que se realicen sobre esta (inserción, modificación o borrado).La estructura de las tablas serán las siguientes: /* Creamos la tabla de acciones*/ CREATETABLE acciones( fecha DATE, hora TIME, accionVARCHAR(50), idusuarioint ); /*Creamos la tabla de usuarios*/ CREATETABLE usuarios( idusuariointegerPRIMARY KEY, nombre VARCHAR(50), apellido VARCHAR(50) );
  • 11. Las sentencias para los disparadores son: /*Disparador para el registro de inserciones*/ DELIMITER | CREATETRIGGERinser_usuarios BEFORE INSERTONusuarios FOR EACH ROWBEGIN INSERTINTOaccionesVALUES(CURDATE(),CURTIME(),'Registroinsertado',new.idusuario); END; | DELIMITER ;   /*Disparador para el registro modificado*/ DELIMITER | CREATETRIGGERupdate_usuarios BEFORE UPDATEONusuarios FOR EACH ROWBEGIN INSERTINTOaccionesVALUES(CURDATE(),CURTIME(),'RegistroModificado',old.idusuario); END; | DELIMITER ;   /*Disparador para el registro eliminado*/   DELIMITER | CREATETRIGGERdelete_usuarios BEFORE DELETEONusuarios FOR EACH ROWBEGIN INSERTINTO acciones VALUES(CURDATE(),CURTIME(),'Registro eliminado',old.idusuario); END; | DELIMITER ;
  • 12. Una pequeña explicación de las sentencias utilizadas es: DELIMITER: los disparadores (Triggers), están formados por varias instrucciones, por lo tanto, antes de comenzar su definición, debes especificar qué carácter delimita (o separa) siguiente. CREATE TRIGGER: Es la sentencia de creación del disparador. BEFORE: Indica el momento de acción del disparador DELETE: Indica el evento que activará al disparador FOR EACH ROW: Define lo que se ejecutará cada vez que el disparador se active, lo cual ocurre una vez por cada fila afectada por la sentencia activadora