Anda di halaman 1dari 17

Base de Datos II

Trigger

Ing. Lidia Quionez


lquinonez@utic.edu.py
lidiaqcris@gmail.com
Contenido

1 TRIGGERS

2 Practica

4
TRIGGERS

Son funciones que se ejecutan de


forma automtica en respuesta a
ciertos eventos que ocurren en la
base de datos.
Un disparador no es otra cosa que
una accin definida en una tabla de
nuestra base de datos y ejecutada
automticamente por una funcin
programada por nosotros. Esta accin
se activar, segn la definamos,
cuando realicemos un INSERT, un
UPDATE un DELETE en la dicha
tabla.
TRIGGERS

La definicin de un trigger consta de


dos partes:
1. La definicin de la funcin asociada
al trigger que es la que ejecuta la
accin en respuesta al evento (INSERT,
UPDATE, DELETE) .
2. La definicin formal de trigger que
indicar:
a) De que tabla se esperarn los
eventos .
b) A que tipo de evento se
responder.
TRIGGERS

La sintaxis para la creacin de triggers es la


siguiente:
CREATE TRIGGER <nombretrigger>
<BEFORE|AFTER> <INSERT|DELETE|
UPDATE>
ON <nombretabla> FOR EACH <ROW|
STATEMENT>
EXECUTE PROCEDURE <procedure
name>;
TRIGGERS

CREATE TRIGGER nombretrigger= Creacin del


trigger
[AFTER | BEFORE] = Antes o despus del evento
[INSERT | UPDATE | DELETE] = El tipo de evento
al que se responder
ON nombretabla= De que tabla se esperarn los
eventos

FOR EACH [ROW | STATEMENT] = Para cada la


o para cada sentencia
EXECUTE PROCEDURE funcin= La funcin que
se va a ejecutar (con sus parmetros
si es que los necesitara)
TRIGGERS

CREATE OR REPLACE FUNCTION nombredelafuncion()


RETURNS trigger AS
$BODY$
BEGIN

sentencia.

RETURN;

END;

$BODY$
LANGUAGE 'plpgsql'
TRIGGERS
PostgreSQL tambin maneja unas cuantas
variables al momento de ejecutar un trigger,
algunas de estas son:

NEW= Variable compuesta que almacena los


nuevos valores de la tupla que se esta
modificando.
OLD= Variable compuesta que almacena los
valores antiguos de la tupla que se esta
modificando.
TG_OP= Variable tipo string que indica que
tipo de evento est ocurriendo (INSERT,
UPDATE, DELETE).
TG_TABLE_NAME= el nombre de la tabla que
ha activado el disparador que est usando la
funcin actualmente.
TG_TABLE_SCHEMA=el nombre del esquema
TRIGGERS

current_user= el nombre del


usuario que esta actualmente
conectado a la base de datos y
que ejecuta las sentencias.

current_date= La fecha actual


(del servidor, no del cliente).

current_time= La hora actual


Creamos la base de datos bd_compras
EJEMPLO:

1. Funcin tipo trigger


EJEMPLO:

2. Creacin del trigger


EJEMPLO:
EJEMPLO:
2. Creacin del trigger
EJEMPLO:
1. Funcin tipo trigger
EJEMPLO:
2. Creacin del trigger
EJERCICIOS
1. Crear un trigger que no permita dejar vacio el nombre del
proveedor.
2. Crear un esquema con el nombre de auditoria , dentro del mismo
crear una tabla auditoria para la tabla de proveedor.
3. Crear un trigger que permita registrar en la tabla de auditoria las
inserciones,modificaciones y borrado que se realizen en la tabla
proveedor.
Estructura de la tabla:

Anda mungkin juga menyukai