Triggers

B
TRIGGERS Activadores Disparadores
Implementación de integridad definida por el usuario y/o reglas de negocio Restricciones y  reglas de integridad Activadores (Triggers) Para definir reglas sobre eventos sobre una tabla. Se activan automáticamente al ocurrir el evento (INSERT, UPDATE o DELETE) sobre la tabla y ejecuta acciones definidas en caso de cumplirse las condiciones especificadas. Procedimientos Almacenados Para definir reglas (lógica) sobre eventos en general. Se ejecutan desde aplicaciones o al ser invocados por un usuario de la base de datos.
Activadores  ( triggers ) Integridad definida por el usuario Se activan automáticamente al ocurrir el evento (INSERT, UPDATE o DELETE) sobre la tabla y ejecuta acciones definidas en caso de cumplirse las condiciones especificadas. Usos : Validación de datos : mayor flexibilidad que restricción CHECK. Condicionar la actualización de la base de datos  : activándose antes (BEFORE) de actualizar la BD, se evita innecesarios bloqueo de recursos y posibles recuperaciones al estado anterior de una transaccion (ROLLBACK). Integridad entre diversas tabla s : mayor flexibilidad que restricciones/reglas de integridad referencial pues no es necesario la existencia de llaves foráneas (recuérdese que las relaciones en un esquema relacional se definen a traves de los valores de los datos).
Activadores   (triggers) DB2 Integridad definida por el usuario >>-CREATE TRIGGER--activador---+-NO CASCADE BEFORE-+-------> +-AFTER-------------+ >--+-INSERT------------------------------+-ON--tabla----> +-DELETE------------------------------+ +-UPDATE--+-------------------------+-+ |  +-----,-----------+  | |  V  |  | +-OF----------columna--+--+ >--+---------------------------------------------------------+-> |  +--------------------------------------+  | |  V  +-AS-+  |  | +-REFERENCING------+-OLD-+----+--nombre-correlación---++--+ |  +-AS-+  |  +-NEW-+----+--nombre-correlación----+ |  +-AS-+  |  +-OLD_TABLE-+----+--identificador---+ |  +-AS-+  |  +-NEW_TABLE-+----+--identificador---+ >--+-FOR EACH ROW--------+--MODE DB2SQL---| acción-activada |-->< |  | +-FOR EACH STATEMENT--+
acción-activada |--+---------------------------------+--------------------------> +-WHEN--(--condición-búsqueda--)--+ >--+-sentencia-SQL-activada-----------------------------+------| |  +----------------------------+  | |  V  |  | +-BEGIN ATOMIC----sentencia-SQL-activada--;--+--END--+ Activadores (triggers) Integridad definida por el usuario
Activadores (triggers) Integridad definida por el usuario Integridad entre la tabla PERSONA y la tabla CARGO : Restricción definida: No  debe permitirse la actualización del dato bonificación (en PERSONA) si el valor que se pretende asignarle excede el porcentaje máximo  sobre su sueldo definido para el cargo ocupado (en CARGO) por la persona.
Activadores (triggers) Integridad definida por el usuario
Activadores (triggers) Integridad definida por el usuario
Activadores (triggers) Integridad definida por el usuario
¿Que son los Triggers y como usarlos en MySQL 5.0? Desde la salida de la versión 5 de MySql se pueden usar triggers en las bases de datos creadas con este manejador. Los eventos pueden ser las sentencias INSERT, DELETE, UPDATE que modifican los datos de una tabla. Los triggeres se pueden ejecutar antes (BEFORE) y/o después (AFTER) de que sean modificados los datos. Los triggers tienen dos palabras clave, OLD y NEW que se refieren a los valores que tienen las columnas antes y después de la modificación. Los INSERT permiten NEW, los DELETE sólo OLD y los UPDATE ambas. Un ejemplo de trigger seria uno asociado a la sentencia UPDATE en una tabla de clientes, para guardar los datos que se modifican de un cliente en otra base de datos que serviría de auditoria.
..... y finalmente un trigger que se disparará cada vez que alguien modifique un dato de la tabla clientes y lo guardará en una tabla junto al nombre del usuario y la fecha. CREATE TRIGGER trigger_auditoria_clientes AFTER UPDATE ON clientes     FOR EACH ROW    INSERT INTO auditoria_clientes(name, anterior_seccion, usuario, modificado )    VALUES (OLD.nombre, OLD.seccion, CURRENT_USER(), NOW() );   Crearemos la tabla de clientes  CREATE TABLE clientes(             id int not null auto_increment,             nombre varchar(100),             seccion varchar(10),             PRIMARY KEY(id),             KEY(nombre) ) ENGINE = InnoDB; Y una tabla que será la que guardará los datos de la &quot;auditoria&quot; CREATE TABLE auditoria_clientes (    id int not null auto_increment,    nombre varchar(100),    anterior_seccion varchar(10),    usuario varchar(40),    modificado datetime,    primary key(id) ) ENGINE = InnoDB;
1 de 11

Recomendados

Commit&rollback por
Commit&rollbackCommit&rollback
Commit&rollbackArchCHUZ
9K vistas6 diapositivas
Triggers o disparadores en MySQL por
Triggers o disparadores en MySQL Triggers o disparadores en MySQL
Triggers o disparadores en MySQL Jair Ospino Ardila
20K vistas13 diapositivas
Disparadores por
DisparadoresDisparadores
DisparadoresAdriana Becerra
9.3K vistas14 diapositivas
Procedimientos Almacenados por
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
677 vistas7 diapositivas
Programación MySQL-Ejercicios por
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
51.8K vistas19 diapositivas

Más contenido relacionado

La actualidad más candente

MANEJO DE SENTENCIAS DE DEFINICION por
MANEJO DE SENTENCIAS DE DEFINICIONMANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICIONSergio Perez
258 vistas7 diapositivas
Triggers o disparadores por
Triggers o disparadoresTriggers o disparadores
Triggers o disparadoresPablo Jose
10.5K vistas15 diapositivas
Triggers en BD mysql por
Triggers en BD mysqlTriggers en BD mysql
Triggers en BD mysqlEmerson Garay
1.4K vistas8 diapositivas
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM por
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM Kamisutra
11.6K vistas17 diapositivas
Triggers por
TriggersTriggers
TriggersFabián Alexander Moya
6.5K vistas27 diapositivas
Sesión02 - Creación de objetos (Oracle) por
Sesión02 - Creación de objetos (Oracle)Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)José Toro
1.2K vistas5 diapositivas

La actualidad más candente(20)

MANEJO DE SENTENCIAS DE DEFINICION por Sergio Perez
MANEJO DE SENTENCIAS DE DEFINICIONMANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICION
Sergio Perez258 vistas
Triggers o disparadores por Pablo Jose
Triggers o disparadoresTriggers o disparadores
Triggers o disparadores
Pablo Jose10.5K vistas
Triggers en BD mysql por Emerson Garay
Triggers en BD mysqlTriggers en BD mysql
Triggers en BD mysql
Emerson Garay1.4K vistas
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM por Kamisutra
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
Kamisutra11.6K vistas
Sesión02 - Creación de objetos (Oracle) por José Toro
Sesión02 - Creación de objetos (Oracle)Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)
José Toro1.2K vistas
Comandos utilizados en sql por Byron Eras
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
Byron Eras48.8K vistas
Actualización de bases de datos en MySQL por alexmerono
Actualización de bases de datos en MySQLActualización de bases de datos en MySQL
Actualización de bases de datos en MySQL
alexmerono17.6K vistas
Sesion06c - Sentencias SQL en PL-SQL (Oracle) por José Toro
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
José Toro1.3K vistas
Taller de MySQL (DDL) por mgpc
Taller de MySQL (DDL)Taller de MySQL (DDL)
Taller de MySQL (DDL)
mgpc797 vistas
Sql Consultas MáS Complejas por alexmerono
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejas
alexmerono79.2K vistas
Comandosql2 por gonfloreso
Comandosql2Comandosql2
Comandosql2
gonfloreso408 vistas
SQL: DDL, DML y SQL por Carmen Soler
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
Carmen Soler23K vistas
Combinacion de consultas y consultas multitablas por claudia contreras
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
claudia contreras18.5K vistas
Sesión03 - Creación de objetos (Oracle) por José Toro
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
José Toro2.6K vistas
Ejercicio sql tienda informatica (1) por Jsrfs Montemayor
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
Jsrfs Montemayor43.2K vistas

Destacado

Clase Sql por
Clase SqlClase Sql
Clase Sqlbdatos
2.3K vistas15 diapositivas
Clase Sql2 por
Clase Sql2Clase Sql2
Clase Sql2bdatos
2.1K vistas18 diapositivas
SQL-DDL por
SQL-DDLSQL-DDL
SQL-DDLbdatos
6.9K vistas25 diapositivas
Presentación SQL Server 2012 por
Presentación SQL Server 2012Presentación SQL Server 2012
Presentación SQL Server 2012Agustin Peratta Knapps
5.1K vistas21 diapositivas
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013 por
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013Daniel Rehn
1.6K vistas61 diapositivas
Digitale Mentalität II por
Digitale Mentalität IIDigitale Mentalität II
Digitale Mentalität IIInstitut für Strategieentwicklung (IFSE)
9.1K vistas27 diapositivas

Destacado(20)

Clase Sql por bdatos
Clase SqlClase Sql
Clase Sql
bdatos2.3K vistas
Clase Sql2 por bdatos
Clase Sql2Clase Sql2
Clase Sql2
bdatos2.1K vistas
SQL-DDL por bdatos
SQL-DDLSQL-DDL
SQL-DDL
bdatos6.9K vistas
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013 por Daniel Rehn
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Daniel Rehn1.6K vistas
Lean Kanban FR 2013 - Vin et kanban por Julien Fallet
Lean Kanban FR 2013 - Vin et kanbanLean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanban
Julien Fallet2.1K vistas
Ligação do Flex a um backend LAMP usando AMFPHP por elliando dias
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
elliando dias1.2K vistas
Apresentação Java Web Si Ufc Quixadá por Zarathon Maia
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
Zarathon Maia1.1K vistas
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La... por dbi services
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
dbi services2.1K vistas
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013 por Daniel Rehn
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Daniel Rehn1.7K vistas
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013 por Daniel Rehn
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Daniel Rehn1.8K vistas
Présentation LMAX Disruptor So@t por Francois Ostyn
Présentation LMAX Disruptor So@tPrésentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@t
Francois Ostyn1.2K vistas
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev. por MongoDB
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
MongoDB2K vistas
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência por Manuel Menezes de Sequeira
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência

Similar a Triggers

Sql triggers v3 por
Sql triggers v3Sql triggers v3
Sql triggers v3Nicolas Villarreal
668 vistas37 diapositivas
Triggers-Activadores por
Triggers-ActivadoresTriggers-Activadores
Triggers-ActivadoresROMARIO MONTALVAN CASTILLO
166 vistas37 diapositivas
Manejo De Sentencias De Definicion por
Manejo De Sentencias De DefinicionManejo De Sentencias De Definicion
Manejo De Sentencias De DefinicionSergio Perez
278 vistas10 diapositivas
San triggers por
San triggersSan triggers
San triggersSandrita Rafael Estela
47 vistas8 diapositivas
TRIGGERS-ACTIVADORES por
TRIGGERS-ACTIVADORESTRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORESINGRID LESLY CORONEL ACUÑA
45 vistas15 diapositivas
TRIGGER-ACTIVADORES por
TRIGGER-ACTIVADORESTRIGGER-ACTIVADORES
TRIGGER-ACTIVADORESINGRID LESLY CORONEL ACUÑA
96 vistas15 diapositivas

Similar a Triggers(20)

Manejo De Sentencias De Definicion por Sergio Perez
Manejo De Sentencias De DefinicionManejo De Sentencias De Definicion
Manejo De Sentencias De Definicion
Sergio Perez278 vistas
Funciones store proc_triggers por Luis Jherry
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
Luis Jherry1.8K vistas
Teoria procedimientos almacenados por hirmaroxana13
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
hirmaroxana132.2K vistas
Manualitosqlserver por Oca srl
ManualitosqlserverManualitosqlserver
Manualitosqlserver
Oca srl54 vistas
Mejoras en T-SQL para SQL Server 2005 por pabloesp
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005
pabloesp2.1K vistas
Tutorial disparadores por Marck Prz
Tutorial disparadoresTutorial disparadores
Tutorial disparadores
Marck Prz202 vistas
Dbd triggers por edwquiv
Dbd triggersDbd triggers
Dbd triggers
edwquiv115 vistas
Transacciones y sql procedural EN MySQL por LuiS YmAY
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQL
LuiS YmAY4.3K vistas
Funciones store proc_triggers por Luis Jherry
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
Luis Jherry1.1K vistas

Más de bdatos

Concursos de Radio Nacionales e Internacionales por
Concursos de Radio Nacionales e InternacionalesConcursos de Radio Nacionales e Internacionales
Concursos de Radio Nacionales e Internacionalesbdatos
150 vistas24 diapositivas
Concursos de radio nacionales e internacionales por
Concursos de radio nacionales e internacionalesConcursos de radio nacionales e internacionales
Concursos de radio nacionales e internacionalesbdatos
1K vistas35 diapositivas
Cual rig es el mejor por
Cual rig es el mejorCual rig es el mejor
Cual rig es el mejorbdatos
1.4K vistas22 diapositivas
Diseño Eficiente BD por
Diseño Eficiente BDDiseño Eficiente BD
Diseño Eficiente BDbdatos
1K vistas20 diapositivas
IntroBD por
IntroBDIntroBD
IntroBDbdatos
955 vistas16 diapositivas
Algebra Relacional por
Algebra RelacionalAlgebra Relacional
Algebra Relacionalbdatos
1.3K vistas24 diapositivas

Más de bdatos(7)

Concursos de Radio Nacionales e Internacionales por bdatos
Concursos de Radio Nacionales e InternacionalesConcursos de Radio Nacionales e Internacionales
Concursos de Radio Nacionales e Internacionales
bdatos150 vistas
Concursos de radio nacionales e internacionales por bdatos
Concursos de radio nacionales e internacionalesConcursos de radio nacionales e internacionales
Concursos de radio nacionales e internacionales
bdatos1K vistas
Cual rig es el mejor por bdatos
Cual rig es el mejorCual rig es el mejor
Cual rig es el mejor
bdatos1.4K vistas
Diseño Eficiente BD por bdatos
Diseño Eficiente BDDiseño Eficiente BD
Diseño Eficiente BD
bdatos1K vistas
IntroBD por bdatos
IntroBDIntroBD
IntroBD
bdatos955 vistas
Algebra Relacional por bdatos
Algebra RelacionalAlgebra Relacional
Algebra Relacional
bdatos1.3K vistas
Modelo Relacional por bdatos
Modelo RelacionalModelo Relacional
Modelo Relacional
bdatos1.4K vistas

Último

Fundamentos de electricidad y electrónica.docx por
Fundamentos de electricidad y electrónica.docxFundamentos de electricidad y electrónica.docx
Fundamentos de electricidad y electrónica.docxDilanTabares
5 vistas9 diapositivas
ESTRATEGIAS DE APOYO MARTIN PALACIO TERCER PERIODO por
ESTRATEGIAS DE APOYO MARTIN PALACIO TERCER PERIODOESTRATEGIAS DE APOYO MARTIN PALACIO TERCER PERIODO
ESTRATEGIAS DE APOYO MARTIN PALACIO TERCER PERIODOpalaciomoralesmartin
8 vistas5 diapositivas
proyecto lavadora.docx por
proyecto lavadora.docxproyecto lavadora.docx
proyecto lavadora.docxpaulavallejo21
11 vistas2 diapositivas
Fundamentos de Electricidad y Electronica 9-3 (1).docx por
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docxSamuel709479
5 vistas26 diapositivas
Meetup_Secrets_of_DW_2_Esp.pptx por
Meetup_Secrets_of_DW_2_Esp.pptxMeetup_Secrets_of_DW_2_Esp.pptx
Meetup_Secrets_of_DW_2_Esp.pptxFedericoCastellari
11 vistas15 diapositivas
Tarea15.pptx por
Tarea15.pptxTarea15.pptx
Tarea15.pptxillanlir
10 vistas6 diapositivas

Último(20)

Fundamentos de electricidad y electrónica.docx por DilanTabares
Fundamentos de electricidad y electrónica.docxFundamentos de electricidad y electrónica.docx
Fundamentos de electricidad y electrónica.docx
DilanTabares5 vistas
Fundamentos de Electricidad y Electronica 9-3 (1).docx por Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094795 vistas
Tarea15.pptx por illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir10 vistas
Tecnologías para la enseñanza virtual.pptx por exprosaavedra
Tecnologías para la enseñanza virtual.pptxTecnologías para la enseñanza virtual.pptx
Tecnologías para la enseñanza virtual.pptx
exprosaavedra14 vistas
Fundamentos De Electricidad y Electrónica equipo 5.pdf por coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria14 vistas
Tecnologías para la enseñanza virtual_cdc.pptx por CarmenerdelHuasco
Tecnologías para la enseñanza virtual_cdc.pptxTecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual_cdc.pptx
Probando aplicaciones basadas en LLMs.pdf por Federico Toledo
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
Federico Toledo51 vistas
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx por dreadlockp5
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptxCÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
dreadlockp58 vistas
fundamentos de electricidad electronica por Kevin619029
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronica
Kevin6190295 vistas
Presentación: El impacto y peligro de la piratería de software por EmanuelMuoz11
Presentación: El impacto y peligro de la piratería de softwarePresentación: El impacto y peligro de la piratería de software
Presentación: El impacto y peligro de la piratería de software
EmanuelMuoz1117 vistas
El Ciberespacio y sus Características.pptx por AnthlingPereira
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptx
AnthlingPereira15 vistas

Triggers

  • 2. Implementación de integridad definida por el usuario y/o reglas de negocio Restricciones y reglas de integridad Activadores (Triggers) Para definir reglas sobre eventos sobre una tabla. Se activan automáticamente al ocurrir el evento (INSERT, UPDATE o DELETE) sobre la tabla y ejecuta acciones definidas en caso de cumplirse las condiciones especificadas. Procedimientos Almacenados Para definir reglas (lógica) sobre eventos en general. Se ejecutan desde aplicaciones o al ser invocados por un usuario de la base de datos.
  • 3. Activadores ( triggers ) Integridad definida por el usuario Se activan automáticamente al ocurrir el evento (INSERT, UPDATE o DELETE) sobre la tabla y ejecuta acciones definidas en caso de cumplirse las condiciones especificadas. Usos : Validación de datos : mayor flexibilidad que restricción CHECK. Condicionar la actualización de la base de datos : activándose antes (BEFORE) de actualizar la BD, se evita innecesarios bloqueo de recursos y posibles recuperaciones al estado anterior de una transaccion (ROLLBACK). Integridad entre diversas tabla s : mayor flexibilidad que restricciones/reglas de integridad referencial pues no es necesario la existencia de llaves foráneas (recuérdese que las relaciones en un esquema relacional se definen a traves de los valores de los datos).
  • 4. Activadores (triggers) DB2 Integridad definida por el usuario >>-CREATE TRIGGER--activador---+-NO CASCADE BEFORE-+-------> +-AFTER-------------+ >--+-INSERT------------------------------+-ON--tabla----> +-DELETE------------------------------+ +-UPDATE--+-------------------------+-+ | +-----,-----------+ | | V | | +-OF----------columna--+--+ >--+---------------------------------------------------------+-> | +--------------------------------------+ | | V +-AS-+ | | +-REFERENCING------+-OLD-+----+--nombre-correlación---++--+ | +-AS-+ | +-NEW-+----+--nombre-correlación----+ | +-AS-+ | +-OLD_TABLE-+----+--identificador---+ | +-AS-+ | +-NEW_TABLE-+----+--identificador---+ >--+-FOR EACH ROW--------+--MODE DB2SQL---| acción-activada |-->< | | +-FOR EACH STATEMENT--+
  • 5. acción-activada |--+---------------------------------+--------------------------> +-WHEN--(--condición-búsqueda--)--+ >--+-sentencia-SQL-activada-----------------------------+------| | +----------------------------+ | | V | | +-BEGIN ATOMIC----sentencia-SQL-activada--;--+--END--+ Activadores (triggers) Integridad definida por el usuario
  • 6. Activadores (triggers) Integridad definida por el usuario Integridad entre la tabla PERSONA y la tabla CARGO : Restricción definida: No debe permitirse la actualización del dato bonificación (en PERSONA) si el valor que se pretende asignarle excede el porcentaje máximo sobre su sueldo definido para el cargo ocupado (en CARGO) por la persona.
  • 7. Activadores (triggers) Integridad definida por el usuario
  • 8. Activadores (triggers) Integridad definida por el usuario
  • 9. Activadores (triggers) Integridad definida por el usuario
  • 10. ¿Que son los Triggers y como usarlos en MySQL 5.0? Desde la salida de la versión 5 de MySql se pueden usar triggers en las bases de datos creadas con este manejador. Los eventos pueden ser las sentencias INSERT, DELETE, UPDATE que modifican los datos de una tabla. Los triggeres se pueden ejecutar antes (BEFORE) y/o después (AFTER) de que sean modificados los datos. Los triggers tienen dos palabras clave, OLD y NEW que se refieren a los valores que tienen las columnas antes y después de la modificación. Los INSERT permiten NEW, los DELETE sólo OLD y los UPDATE ambas. Un ejemplo de trigger seria uno asociado a la sentencia UPDATE en una tabla de clientes, para guardar los datos que se modifican de un cliente en otra base de datos que serviría de auditoria.
  • 11. ..... y finalmente un trigger que se disparará cada vez que alguien modifique un dato de la tabla clientes y lo guardará en una tabla junto al nombre del usuario y la fecha. CREATE TRIGGER trigger_auditoria_clientes AFTER UPDATE ON clientes    FOR EACH ROW    INSERT INTO auditoria_clientes(name, anterior_seccion, usuario, modificado )    VALUES (OLD.nombre, OLD.seccion, CURRENT_USER(), NOW() );   Crearemos la tabla de clientes CREATE TABLE clientes(             id int not null auto_increment,             nombre varchar(100),             seccion varchar(10),             PRIMARY KEY(id),             KEY(nombre) ) ENGINE = InnoDB; Y una tabla que será la que guardará los datos de la &quot;auditoria&quot; CREATE TABLE auditoria_clientes (    id int not null auto_increment,    nombre varchar(100),    anterior_seccion varchar(10),    usuario varchar(40),    modificado datetime,    primary key(id) ) ENGINE = InnoDB;