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

Oracle pl/sql control statments
Oracle pl/sql control statmentsOracle pl/sql control statments
Oracle pl/sql control statmentsTayba Bashir
 
Ejercicio Atletas Adsi java SENA :)
Ejercicio Atletas Adsi java SENA   :)Ejercicio Atletas Adsi java SENA   :)
Ejercicio Atletas Adsi java SENA :)ramitos526
 
SQL Queries Information
SQL Queries InformationSQL Queries Information
SQL Queries InformationNishant Munjal
 
A Step-By-Step Introduction to SAS Report Procedure
A Step-By-Step Introduction to SAS Report ProcedureA Step-By-Step Introduction to SAS Report Procedure
A Step-By-Step Introduction to SAS Report ProcedureYesAnalytics
 
Flow Chart Guide PPT
Flow Chart Guide PPTFlow Chart Guide PPT
Flow Chart Guide PPT丹 丹
 
Triggers o disparadores
Triggers o disparadoresTriggers o disparadores
Triggers o disparadoresPablo Jose
 
Manipulating Data Oracle Data base
Manipulating Data Oracle Data baseManipulating Data Oracle Data base
Manipulating Data Oracle Data baseSalman Memon
 
Looping Statement And Flow Chart
 Looping Statement And Flow Chart Looping Statement And Flow Chart
Looping Statement And Flow ChartRahul Sahu
 
IBM DB2 LUW UDB DBA Online Training by Etraining.guru
IBM DB2 LUW UDB DBA Online Training by Etraining.guruIBM DB2 LUW UDB DBA Online Training by Etraining.guru
IBM DB2 LUW UDB DBA Online Training by Etraining.guruRavikumar Nandigam
 
Oracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step GuideOracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step GuideSrinimf-Slides
 
DB2 Interview Questions - Part 1
DB2 Interview Questions - Part 1DB2 Interview Questions - Part 1
DB2 Interview Questions - Part 1ReKruiTIn.com
 

La actualidad más candente (20)

Oracle pl/sql control statments
Oracle pl/sql control statmentsOracle pl/sql control statments
Oracle pl/sql control statments
 
Oracle: Control Structures
Oracle: Control StructuresOracle: Control Structures
Oracle: Control Structures
 
Introduction to triggers
Introduction to triggersIntroduction to triggers
Introduction to triggers
 
Ejercicio Atletas Adsi java SENA :)
Ejercicio Atletas Adsi java SENA   :)Ejercicio Atletas Adsi java SENA   :)
Ejercicio Atletas Adsi java SENA :)
 
SQL Queries Information
SQL Queries InformationSQL Queries Information
SQL Queries Information
 
A Step-By-Step Introduction to SAS Report Procedure
A Step-By-Step Introduction to SAS Report ProcedureA Step-By-Step Introduction to SAS Report Procedure
A Step-By-Step Introduction to SAS Report Procedure
 
Flow Chart Guide PPT
Flow Chart Guide PPTFlow Chart Guide PPT
Flow Chart Guide PPT
 
Database Triggers
Database TriggersDatabase Triggers
Database Triggers
 
4. plsql
4. plsql4. plsql
4. plsql
 
Oracle SQL Basics
Oracle SQL BasicsOracle SQL Basics
Oracle SQL Basics
 
Views
ViewsViews
Views
 
Triggers o disparadores
Triggers o disparadoresTriggers o disparadores
Triggers o disparadores
 
Manipulating Data Oracle Data base
Manipulating Data Oracle Data baseManipulating Data Oracle Data base
Manipulating Data Oracle Data base
 
Looping Statement And Flow Chart
 Looping Statement And Flow Chart Looping Statement And Flow Chart
Looping Statement And Flow Chart
 
MySQL Views
MySQL ViewsMySQL Views
MySQL Views
 
Python Programming Essentials - M12 - Lists
Python Programming Essentials - M12 - ListsPython Programming Essentials - M12 - Lists
Python Programming Essentials - M12 - Lists
 
IBM DB2 LUW UDB DBA Online Training by Etraining.guru
IBM DB2 LUW UDB DBA Online Training by Etraining.guruIBM DB2 LUW UDB DBA Online Training by Etraining.guru
IBM DB2 LUW UDB DBA Online Training by Etraining.guru
 
Oracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step GuideOracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step Guide
 
Arreglos en Java
Arreglos en JavaArreglos en Java
Arreglos en Java
 
DB2 Interview Questions - Part 1
DB2 Interview Questions - Part 1DB2 Interview Questions - Part 1
DB2 Interview Questions - Part 1
 

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

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
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Trigger - Activadores
Trigger - ActivadoresTrigger - Activadores
Trigger - Activadores
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Trigger-activadores en sql server
Trigger-activadores en sql serverTrigger-activadores en sql server
Trigger-activadores en sql server
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datos
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Triggr
TriggrTriggr
Triggr
 
Trigger
TriggerTrigger
Trigger
 
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
 
TRIGGER-ACTIVADORES
TRIGGER-ACTIVADORESTRIGGER-ACTIVADORES
TRIGGER-ACTIVADORES
 
CREACION DE TRIGGERS.pptx
CREACION DE TRIGGERS.pptxCREACION DE TRIGGERS.pptx
CREACION DE TRIGGERS.pptx
 

Último

Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
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
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 

Último (20)

Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
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
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 

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