0% encontró este documento útil (0 votos)
33 vistas14 páginas

Trigger - Insert

Un TRIGGER es un script SQL que se ejecuta automáticamente en respuesta a operaciones de actualización, inserción o eliminación en una base de datos. Permite implementar funcionalidades útiles sin necesidad de programación externa y puede modificar datos o prevenir errores. Se crean mediante la sentencia CREATE y utilizan variables especiales NEW y OLD para acceder a la información afectada por las operaciones.

Cargado por

Gustavo Amaya
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
33 vistas14 páginas

Trigger - Insert

Un TRIGGER es un script SQL que se ejecuta automáticamente en respuesta a operaciones de actualización, inserción o eliminación en una base de datos. Permite implementar funcionalidades útiles sin necesidad de programación externa y puede modificar datos o prevenir errores. Se crean mediante la sentencia CREATE y utilizan variables especiales NEW y OLD para acceder a la información afectada por las operaciones.

Cargado por

Gustavo Amaya
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Base de Datos II

Triggers

Ing. Liliana Irías Moya


 Un TRIGGER, también conocido como
disparador, es una especie de script de
programación SQL para base de datos.

 Los TRIGGER son procedimientos que se


ejecutarán según nuestras indicaciones
Concepto cuando se realicen operaciones sobre la
información de la base de datos.

 Estas operaciones pueden ser de


actualización (UPDATE), inserción (INSERT) y
borrado (DELETE).
 Los TRIGGERS son una de las
funcionalidades más útiles de las que
disponemos cuando diseñamos y
mantenemos bases de datos. Gracias
a ellos podremos implementar ciertas
características de nuestra base de
Utilidad datos sin necesidad de desarrollar
programación en otros lenguajes
externos.
 Los TRIGGER además pueden
modificar la información de la base
de datos e incluso detener la
ejecución de consultas erróneas
 La creación de un TRIGGER sigue las bases de
crear un procedimiento almacenado o una función
almacenada. Primero declaramos un delimitador y
usamos la sentencia CREATE:
 Delimiter $$

Creación de  Create triggers NOMBRE


 A continuación debemos indicar CUANDO DEBE
un trigger EJECUTARSE el TRIGGER. Las indicaciones posibles
en este punto son AFTER o BEFORE para indicar si el
disparador se ejecutará ANTES o DESPUÉS de la
orden lanzada por el usuario.
 Estas órdenes serán: INSERT, DELETE o UPDATE. Por
último indicaremos sobre que tabla actuará.
 TRIGGER INSERT
DELIMITER $$

CREATE TRIGGER trigger_historico


AFTER INSERT ON emple
Sintaxis FOR EACH ROW
BEGIN
//líneas de código SQL que se ejecutarán
END; $$
 Para que nuestras líneas de código SQL puedan
acceder a la información que interviene en el
Variables TRIGGER, es decir, la información a la que afecta un
UPDATE, INSERT o DELETE, disponemos de dos
NEW y OLD variables especiales NEW y OLD.
 NEW es la variable que almacena la nueva
información que aporta la consulta a la base de datos,
es decir, cada una de las filas que intervienen en un
INSERT O UPDATE. Si por ejemplo se ha realizado un
INSERT, gracias a NEW podremos acceder a los datos
introducidos para cada columna de la tabla.
[Link] por ejemplo almacena la información de
La variable la columna nombre que tendrá el nuevo registro
insertado en la tabla.
NEW
 Hay que tener en cuenta que NEW no estará
disponible en todos los tipos de TRIGGER. En concreto
los TRIGGER relacionados con un DELETE no
dispondrán de información en esta variable ya que
tan solo tendremos información antigua que es
eliminada
 OLD es la variable que almacena la información
antigua relacionada con la consulta que ejecuta el
TRIGGER, esta información la componen las filas que
van a ser borradas o modificadas. En un DELETE por
ejemplo, OLD tendrá la información de todas las
La variable columnas de los registros borrados.

OLD  Al igual que NEW no está disponible para todos los


TRIGGER que creemos, la variable OLD no podrá ser
utilizada para un INSERT, ya que en este tan solo
existe nueva información que va a ser insertada en la
base de datos.
 TRIGGER que permite mantener una copia de todos
los empleados que se inserten en una base de datos
de una tienda online. Para esto tendremos dos tablas:
emple y emple_audit.
 Así, el siguiente TRIGGER insertará toda la
Ejemplo de información ingresada en la tabla emple, a la tabla
emple_audit.
un trigger
con insert Primero, se deberá crear la tabla emple_audit con los
campos:
emp_no int primary key,emp_pnom varchar
(15),emp_snom varchar (15),emp_pape varchar
(15),emp_sape varchar (15),emp_salar int, fecha
datetime, usuario varchar(15)
 DELIMITER $$

CREATE TRIGGER trigger_emple_audit


AFTER INSERT ON emple
FOR EACH ROW
Ejemplo de BEGIN
un trigger INSERT INTO emple_audit VALUES
con insert (new.emp_no,new.emp_pnom,new.emp_snom,[Link]
_pape,new.emp_sape,new.emp_salar,now(),current_use
r());
END; $$
Comprobación: Inserte un registro en la tabla emple
para que se ejecute este trigger en la tabla
emple_audit.
 Primero se crea una base de datos para un
supermercado:
 Posteriormente la tabla llamada Producto:
Create table producto(prod_cod int primary key,
prod_nom varchar(20),prod_precio decimal(8,2));
Ejemplo #2 Delimiter $$
de un  Creación del trigger:
trigger con Create trigger revisa_precio

insert Before insert on producto


For each row
If new.prod_precio <= 0 then
Set new.prod_precio = 50;
End if; $$
Insert into producto values (80, ´Leche´,0) $$

 Para comprobar que el triggers se ejecutó:


Select * from producto $$
Comprobaci
ón  Para ver los triggers creados:
Show triggers $$

 Para eliminar un trigger:


Drop trigger NOMBRE_TRIGGER $$
 En la base de datos RECURSOS:
 Crear un trigger para que al ingresar un nuevo
departamento en la tabla depart, lo agregue tambien
en otra tabla llamada depart_nuevos
Ejercicios:
 Crear un trigger para que al querer ingresar un
empleado y asignarle un salario menor a 12,000, la
base de datos le asigne un salario exacto de 12,000

También podría gustarte