Está en la página 1de 19

PL/SQL

Triggers

1
miércoles 23 de mayo de 2012
Introducción.

- Procedimientos que se almacenan de


manera aislada en la BD y deben ser
invocados explícitamente.
- Se ejecutan automáticamente al
producirse determinados eventos.

2
miércoles 23 de mayo de 2012
Triggers.

- Disparador de tabla.
- Disparador de sustitución.
- Disparador de sistema.

3
miércoles 23 de mayo de 2012
Triggers.
- Se utilizan para:
- Mantener la integridad referencial.
- Manipulación sobre vistas.
- Generar automáticamente valores derivados.
- Gestionar réplicas remotas.
- Asegurar las reglas del negocio.
- Auditar.

4
miércoles 23 de mayo de 2012
Triggers.

- Para definir un trigger se debe:


- Especificar las condiciones.
- Especificar las acciones.

5
miércoles 23 de mayo de 2012
Triggers.

- Las acciones se definen mediante


bloques PL-SQL:
- Declarativa
- Ejecutable.
- Excepciones.

6
miércoles 23 de mayo de 2012
Triggers

- Se almacenan en la BD (user_triggers):
- Pueden afectar a N filas.
- Se ejecutan de manera implicita.
- Se compilan cada vez que se activan.

7
miércoles 23 de mayo de 2012
y !"#$%&'()*#)+(),"&--#" Sintaxis
y !"#$%&'()%#*+,-.%#/(&(#"(#.&0(.-12#30#42#!"#$$%" 0,
-./0!/(1.(./230-/(!.455/.(!"#$%&'(%)**&%
67/81./(9(08!/.(9(4:;!/0<(18=(&+&!("',&',)-./%"
>?@/:(0"!,)0)1!',&',)./%"A
></-30./
B'%CD*"*C#,E%&FA
7/54:
B*CC#,E%&F
>/G-/2!41:
B$%&+#HE('%(%IC%JC#,E%&FA
/:<K
8
miércoles 23 de mayo de 2012
Creación.
- En la cabecera del trigger se define:
- Nombre del trigger.
- Evento del disparo:
- DML.
- DDL.
- Suceso del sistema.
- Restricción del trigger (opcional).
9
miércoles 23 de mayo de 2012
Sintaxis

- Eliminación
- drop trigger nombre_disparador;
- Activación/Desactivación
- alter trigger nombre_disparador
{disable|enable};

10
miércoles 23 de mayo de 2012
Componentes

- Before/after/Instead of:
- instante de ejecución del disparador
respecto al evento.
- Evento:
- Orden DML sobre una tabla.

11
miércoles 23 de mayo de 2012
Componentes
- PL/SQL:
- un disparador no puede emitir ninguna
orden de control de transacciones.
- No puede contener ninguna declaración
de variables LONG o LONG RAW.
- No puede modificar columnas que son
primary key

12
miércoles 23 de mayo de 2012
Registros :old y :new
Registros :old y :new
Un disparador a nivel de fila se ejecuta por cada fila en
la que se yproduce
- :old :new sonel suceso.
registros que nos permiten
:old yacceder
:new sona registros
los datosque nos
de la filapermiten
actual. acceder a lo
datos de la fila actual.
Suceso :old :new

INSERT NULL Nuevos valores

UPDATE Valores almacenados Nuevos valores

DELETE Valores almacenados NULL

Carmen Hernández 13 Triggers y PL/SQL

miércoles 23 de mayo de 2012


!"#$$%"& '%()*&%('%('*+,&
/*Cada ves que se modifica el campo salario en la tabla empleados se
insertara un afila en la tabla auditaremple*/

y !"#$%&%'(&)#*')*+%,-%#
-./0!/(1.(./230-/(!.455/.(*6'#+7&6)#'*7&*8*"#,
09!/.(:2;0!/(19(&*8*"#,
1<(%=>8%
91.(/0-?(.1@
A/54<
4<B/.!(4<!1(*6'#+*"%=>8%
s>h^;͚^h/^>Z/KDW>K͛ͮͮ͗,8'C%=>7D,EF
/<;F
G

14
miércoles 23 de mayo de 2012
y !"#$%&%'(&)#*')*+%,-%#
y !"#$%&'()%#*(&(#+&,(&#-./*(&(-%&,/#-,#)(0"(/#,/1
-./0!/(12.(./340-/5(!.677/.(!"#$%&'%())&%
89/:2./(;(0:!/.<(8=/4/!/;6>?/.!;@3=0!/(12:(AB#&+*CD*EF,&G5<(
2>(H,E)"%+*)B*
1:2.(/0-I(8?!0!/J/>!;.2K;(1KI/>LD,H'#D#MHN5<5
9/76>
͙͘͘

15
miércoles 23 de mayo de 2012
y !"#$%&%'(&)#*')*+%,-%#
y !"#$%&'%()*(#!"#$$%" $(#+%$,-.-#/'-)+0#$(#10..-#')#
(2,"(-+0#3#&'-.+-#$'#)45#-,(""%+0#3#+,*0 ()#*-'#+*"%./0%
1234!3(52(2367413(!289932(*-'#+:),""*',:%./0%
;3<523(=373!3
5>(%./0%
<52(341?(25@
;398>
8>A32!(8>!5(*-'#+*"%./0%
s>h^;͚KZZKDW>K͛ͮͮ͗,0'B%./:C,DD
E,0'B*/%00#', DD(E,0'B'%/+:C,FG
3>=G

16
miércoles 23 de mayo de 2012
4)+($(#4*5#(50+)%*)%$($6
y 7%#./%&%8)(-*&#%54"/%)#/5(#)+&0)%44%95#'()(#./+#&9"*
+,+4/0+#+"#$%&'()($*)#4/(5$*#+"#+-'"+($*#1*))($*
-./012/3!/("*#%5$%4():(-*&#-+$%(50+#"(#4";/&/"(#4
7./8!/(9.(./-:87/(!.1;;/.(*<'#+=),""*',=%>?@%
A/B9./(2/:/!/
93(%>?@%
B9.(/875(.94(!"#$%&'()&*+,+&с͚WZ^/Ed͛
A/;13
͙

17
miércoles 23 de mayo de 2012
y !"#$%&%'(&)#*')*+%,-%#
y .%-(&)#*!"# /*$%&

-./0!/(!.122/.(),""*',3%456%
07!/.(8/9/!/(:;(%456%
'"("'"!)*!+,$%&,-.,/0123453
7:.(/0-<(.:=
=</;(>?,@'#?#A@B
C/21;
1;D/.!(1;!:(<#&+,"#?,3%456% E09F/D(G
H*@+%"#,"I%453@,J(H*@+%"#,"I*5%66#',J(H*@+%"#,"I,K#?#,LM
/;8M

18
miércoles 23 de mayo de 2012
y ./-+"$-)#*)0)1+(#*')*'"#$%&(
y !"#$%&'(

ZddZ/''Z͙
-./01.(!"#$%&'(%')*+,&$'(%'+$-$&$'02(%345%͙
-.672
7/(!"#$%&!". d,E͙
.897/(+$-$&!". d,E͙
.897/()*+,&!". d,E͙
E/&͙
.2:;

19
miércoles 23 de mayo de 2012

También podría gustarte