SlideShare una empresa de Scribd logo
1 de 9
UNIVERSAD POLITECNICA AMAZÒNICA
CURSO : BASEDATOSII
CARRERA :
Ingeniería de Sistemas y Telemática.
INTEGRANTES:
Lucy Mego Saavedra
Magaly Portocarrero Labajos
Karin Juneth Soto Horna
PROFESOR :
Marco Aurelio Porro Chulli
Trigger – Activadores
Trigger (Disparadores)
Un trigger (o disparador) en una Base de datos , es un procedimiento que se ejecuta cuando se
cumple una condición establecida al realizar una operación de inserción (INSERT), actualización
(UPDATE) o borrado (DELETE).
Usos
Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que
el usuario ejecute la sentencia de SQL.
Además, pueden generar valores de columnas, previene errores de datos, sincroniza tablas,
modifica valores de una vista, etc.
TIPOS
Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a
realizar:
Row Triggers (o Disparadores de fila): son aquellas que se ejecutaran n-veces si se llama
n-veces desde la tabla asociada al trigger
Statement Triggers (o Disparadores de secuencia): son áquellos que sin importar la
cantidad de veces que se cumpla con la condición, su ejecución es única.
Pueden ser de sesión y almacenados; pero no son de fiar.
Los Triggers o Disparadores son objetos que se asocian con tablas y se almacenan en la base
de datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya
que se ejecutan cuando sucede algún evento sobre las tablas a las que se encuentra asociado.
Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (INSERT),
borrado (DELETE) o actualización (UPDATE), ya que modifican los datos de una tabla.
La utilidad principal de un trigger es mejorar la administración de la base de datos, ya que no
requieren que un usuario los ejecute. Por lo tanto, son empleados para implementar las
REGLAS DE NEGOCIO (tipo especial de integridad) de una base de datos.
Sintaxis
Sintaxis de CREATE TRIGGER
CREATE TRIGGER nombre_disp momento_disp evento_disp
ON nombre_tabla FOR EACH ROW sentencia_disp
Un disparador es un objeto con nombre en una base de datos que se asocia con una tabla, y se activa
cuando ocurre un evento en particular para esa tabla.
El disparador queda asociado a la tabla nombre_tabla. Esta debe ser una tabla permanente, no puede
ser una tabla TEMPORARY ni una vista.
momento_disp es el momento en que el disparador entra en acción. Puede ser BEFORE (antes) o
AFTER (despues), para indicar que el disparador se ejecute antes o después que la sentencia que lo
activa.
evento_disp indica la clase de sentencia que activa al disparador. Puede ser INSERT, UPDATE, o
DELETE. Por ejemplo, un disparador BEFORE para sentencias INSERT podría utilizarse para validar los
valores a insertar.
No puede haber dos disparadores en una misma tabla que correspondan al mismo momento y sentencia.
Por ejemplo, no se pueden tener dos disparadores BEFORE UPDATE. Pero sí es posible tener los
disparadores BEFORE UPDATE y BEFORE INSERT o BEFORE UPDATE y AFTER UPDATE.
Disparadores en MySQL
Los disparadores son soportados en MySQL a partir de la versión 5.0.2.
Algunos de los soportes existentes son los disparadores para las
sentencias INSERT, UPDATE y DELETE
El estándar SQL:2003 requiere que los disparadores den a los programadores acceso a las variables
de un registro utilizando una sintaxis como REFERENCING NEW AS n. Por ejemplo, si un disparador
está monitoreando los cambios en la columna salario, podría escribirse un disparador como:
CREATE TRIGGER ver_salario
BEFORE UPDATE ON empleados
REFERENCING NEW ROW AS n, OLD ROW AS o
FOR EACH ROW
IF n.salario <> o.salario THEN
END IF;
Disparadores en PostgreSQL
Desde 1997 PostgreSQL soporta el uso de disparadores, estos pueden anexarse a las tablas
pero no a las vistas; aunque a las vistas se les pueden crear reglas.
Al igual que en MySQL los disparadores de PostgreSQL se pueden activar luego de
sentencias INSERT, UPDATE o DELETE
Cuando hay varios disparadores, se activan en orden alfabético.
Además de permitir el uso de funciones en el lenguaje nativo de PostgreSQL, PL/PgSQL, los
disparadores también permiten invocar funciones escritas en otros lenguajes como PL/Perl.
En Postgres un disparador ejecuta una función la cual contiene el código de lo que se
requiere, esto difiere del método expuesto anteriormente para MySQL que escribe el código
a ejecutarse dentro del mismo disparador.
Ejemplos
create trigger DIS_t_Libro_insertar on t_Libro
for insert
as
declare @descrip varchar(max)
select @descrip=Descripcion from t_Libro
join inserted
on inserted.codigolibro=t_Libro.codigo
where t_Libro.codigo=inserted.codigolibro
if (@descrip >= (select IdAutor from inserted ))
update t_Libro set Rodaje=Rodaje-inserted.codigolibro
from t_Libro
join inserted
on inserted.codigolibro=t_Libro.codigo
where codigo=t_Libro.codigolibro
else
begin
raiserror ('',10,1)
rollback transaction
end
Trigger - Activadores

Más contenido relacionado

La actualidad más candente (20)

Triggers o disparadores
Triggers o disparadoresTriggers o disparadores
Triggers o disparadores
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)
 
Triggers
TriggersTriggers
Triggers
 
Postgres trigger
Postgres triggerPostgres trigger
Postgres trigger
 
Trigger o Disparadores
Trigger o DisparadoresTrigger o Disparadores
Trigger o Disparadores
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
Cliente servidor consultas sql
Cliente servidor consultas sqlCliente servidor consultas sql
Cliente servidor consultas sql
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Actividad1 unidad3
Actividad1 unidad3Actividad1 unidad3
Actividad1 unidad3
 
Sentencias SQL Cristian Benalcázar
Sentencias SQL Cristian BenalcázarSentencias SQL Cristian Benalcázar
Sentencias SQL Cristian Benalcázar
 
Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)
 
Apunte plsql
Apunte plsqlApunte plsql
Apunte plsql
 
Subconsultas
SubconsultasSubconsultas
Subconsultas
 
Bd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa TriggersBd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa Triggers
 
Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)
 
TRIGGERS Cliente - servidor
TRIGGERS Cliente - servidorTRIGGERS Cliente - servidor
TRIGGERS Cliente - servidor
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Pl Sql
Pl SqlPl Sql
Pl Sql
 

Similar a Trigger - Activadores (20)

Disparadores.pptx
Disparadores.pptxDisparadores.pptx
Disparadores.pptx
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQL
 
database trig
database trigdatabase trig
database trig
 
Trigger - INSERT- Base de Datos 2 .pptx
Trigger - INSERT- Base de Datos 2  .pptxTrigger - INSERT- Base de Datos 2  .pptx
Trigger - INSERT- Base de Datos 2 .pptx
 
Dbd triggers
Dbd triggersDbd triggers
Dbd triggers
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Formacion critica
Formacion criticaFormacion critica
Formacion critica
 
Disparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My SqlDisparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My Sql
 
Trigger activadores
Trigger activadoresTrigger activadores
Trigger activadores
 
Tutorial disparadores
Tutorial disparadoresTutorial disparadores
Tutorial disparadores
 
San triggers
San triggersSan triggers
San triggers
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Triggr
TriggrTriggr
Triggr
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
CREACION DE TRIGGERS.pptx
CREACION DE TRIGGERS.pptxCREACION DE TRIGGERS.pptx
CREACION DE TRIGGERS.pptx
 
Trabajo grupal - Base de Datos
Trabajo grupal - Base de DatosTrabajo grupal - Base de Datos
Trabajo grupal - Base de Datos
 
Disparadores - base de datos
Disparadores - base de datosDisparadores - base de datos
Disparadores - base de datos
 
Disparadores
DisparadoresDisparadores
Disparadores
 

Más de Magaly Portocarrero Labajos (16)

Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Transacciones
Transacciones Transacciones
Transacciones
 
Administracion de la seguridad
Administracion de la seguridadAdministracion de la seguridad
Administracion de la seguridad
 
Cursores
CursoresCursores
Cursores
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Vistas
VistasVistas
Vistas
 
Comandos DDL
Comandos DDLComandos DDL
Comandos DDL
 
Lenguaje Transact SQL
Lenguaje Transact SQLLenguaje Transact SQL
Lenguaje Transact SQL
 
PreparedStatement
PreparedStatementPreparedStatement
PreparedStatement
 
J table con base de datos
J table con base de datosJ table con base de datos
J table con base de datos
 
Resulset
Resulset Resulset
Resulset
 
Dispositivas de la clase statement
Dispositivas de la clase statementDispositivas de la clase statement
Dispositivas de la clase statement
 
CONNECTION
CONNECTIONCONNECTION
CONNECTION
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Diapositiva java
Diapositiva javaDiapositiva java
Diapositiva java
 
Diapositivas del jdbc magaly y duyen
Diapositivas del jdbc magaly y duyenDiapositivas del jdbc magaly y duyen
Diapositivas del jdbc magaly y duyen
 

Último

Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTGestorManpower
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 

Último (20)

Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SST
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 

Trigger - Activadores

  • 1. UNIVERSAD POLITECNICA AMAZÒNICA CURSO : BASEDATOSII CARRERA : Ingeniería de Sistemas y Telemática. INTEGRANTES: Lucy Mego Saavedra Magaly Portocarrero Labajos Karin Juneth Soto Horna PROFESOR : Marco Aurelio Porro Chulli
  • 2. Trigger – Activadores Trigger (Disparadores) Un trigger (o disparador) en una Base de datos , es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). Usos Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que el usuario ejecute la sentencia de SQL. Además, pueden generar valores de columnas, previene errores de datos, sincroniza tablas, modifica valores de una vista, etc.
  • 3. TIPOS Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar: Row Triggers (o Disparadores de fila): son aquellas que se ejecutaran n-veces si se llama n-veces desde la tabla asociada al trigger Statement Triggers (o Disparadores de secuencia): son áquellos que sin importar la cantidad de veces que se cumpla con la condición, su ejecución es única. Pueden ser de sesión y almacenados; pero no son de fiar.
  • 4. Los Triggers o Disparadores son objetos que se asocian con tablas y se almacenan en la base de datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya que se ejecutan cuando sucede algún evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifican los datos de una tabla. La utilidad principal de un trigger es mejorar la administración de la base de datos, ya que no requieren que un usuario los ejecute. Por lo tanto, son empleados para implementar las REGLAS DE NEGOCIO (tipo especial de integridad) de una base de datos.
  • 5. Sintaxis Sintaxis de CREATE TRIGGER CREATE TRIGGER nombre_disp momento_disp evento_disp ON nombre_tabla FOR EACH ROW sentencia_disp Un disparador es un objeto con nombre en una base de datos que se asocia con una tabla, y se activa cuando ocurre un evento en particular para esa tabla. El disparador queda asociado a la tabla nombre_tabla. Esta debe ser una tabla permanente, no puede ser una tabla TEMPORARY ni una vista. momento_disp es el momento en que el disparador entra en acción. Puede ser BEFORE (antes) o AFTER (despues), para indicar que el disparador se ejecute antes o después que la sentencia que lo activa. evento_disp indica la clase de sentencia que activa al disparador. Puede ser INSERT, UPDATE, o DELETE. Por ejemplo, un disparador BEFORE para sentencias INSERT podría utilizarse para validar los valores a insertar. No puede haber dos disparadores en una misma tabla que correspondan al mismo momento y sentencia. Por ejemplo, no se pueden tener dos disparadores BEFORE UPDATE. Pero sí es posible tener los disparadores BEFORE UPDATE y BEFORE INSERT o BEFORE UPDATE y AFTER UPDATE.
  • 6. Disparadores en MySQL Los disparadores son soportados en MySQL a partir de la versión 5.0.2. Algunos de los soportes existentes son los disparadores para las sentencias INSERT, UPDATE y DELETE El estándar SQL:2003 requiere que los disparadores den a los programadores acceso a las variables de un registro utilizando una sintaxis como REFERENCING NEW AS n. Por ejemplo, si un disparador está monitoreando los cambios en la columna salario, podría escribirse un disparador como: CREATE TRIGGER ver_salario BEFORE UPDATE ON empleados REFERENCING NEW ROW AS n, OLD ROW AS o FOR EACH ROW IF n.salario <> o.salario THEN END IF;
  • 7. Disparadores en PostgreSQL Desde 1997 PostgreSQL soporta el uso de disparadores, estos pueden anexarse a las tablas pero no a las vistas; aunque a las vistas se les pueden crear reglas. Al igual que en MySQL los disparadores de PostgreSQL se pueden activar luego de sentencias INSERT, UPDATE o DELETE Cuando hay varios disparadores, se activan en orden alfabético. Además de permitir el uso de funciones en el lenguaje nativo de PostgreSQL, PL/PgSQL, los disparadores también permiten invocar funciones escritas en otros lenguajes como PL/Perl. En Postgres un disparador ejecuta una función la cual contiene el código de lo que se requiere, esto difiere del método expuesto anteriormente para MySQL que escribe el código a ejecutarse dentro del mismo disparador.
  • 8. Ejemplos create trigger DIS_t_Libro_insertar on t_Libro for insert as declare @descrip varchar(max) select @descrip=Descripcion from t_Libro join inserted on inserted.codigolibro=t_Libro.codigo where t_Libro.codigo=inserted.codigolibro if (@descrip >= (select IdAutor from inserted )) update t_Libro set Rodaje=Rodaje-inserted.codigolibro from t_Libro join inserted on inserted.codigolibro=t_Libro.codigo where codigo=t_Libro.codigolibro else begin raiserror ('',10,1) rollback transaction end