Está en la página 1de 4

Problemario de triggers, procedures y ejercicios combinados a base de datos

usando SQL estndar con la siguiente base de datos que se proporcionara.


Procedimiento (procedure): Un conjunto de comandos que pueden almacenar en
el servidor.
Delimitador (delimiter): Signo o carcter que determina la finalizacin de una
sentencia.



Crate procedure NOMBRE (in PARAMETRO1, tipo_dato (), PARMETRO tipo_dato ())



Begin La sintaxis BEGIN END se utiliza para escribir sentencias
compuestas que pueden aparecer en el interior de procedimientos almacenados.






Insert into NOMBRE (ATRIBUTOS, ATROBUTOS) values (PARMETRO, PARAMETRO);
End // termina una sentencia utilizada con el delimitador especificado.

CALL Se mandara a llamar el procedimiento.
CALL NOMBRE_PROCEDIMIENTO ()//


Nombre del procedimiento
Variables que se le asignaran
a los parmetros de la tabla
Se establecern eventos: INSERT,
SELECT, DELETE, UPDATE, de acuerdo
a lo que se requiera realizar.
Se establecern las variables definidas
en la fase 1 y se le enviaran a los
atributos ya establecidos en la tabla

Fase 1
Fase 2
Fase 3
Ejemplo 1
1. Mostrar el ID de la tabla t

a) Se creara la tabla y se insertaran registros en la misma.

mysql>create table t (c1 int);
Query OK, 0 rows affected (0.22 sec)
mysql>insert into t (c1) values (4);
Query OK, 0 rows affected (0.12 sec)

b) Se crea el procedimiento y se realizan las siguientes instrucciones.

SALIDA
tabla resultado
C1 4

Ejercicios: desarrolla cada una de las siguientes actividades.
1. Calcular la edad y el da de nacimiento con nombre, de los empleados mediante un
procedimiento.
2. Realiza un procedimiento que consulte el id del estudiante, edad y el mes en el que naci y
concatnalo con el nombre consulta1.
3. Realiza el siguiente procedimiento que muestre los siguientes resultados tomando en
cuenta las siguientes funciones. (INSERT,SELECT).

Se mostraran todos los
registros de la tabla
cuando estn registrados.

TRIGGER (DISPARADORES)
Un disparador es un objeto con nombre dentro de una base de datos el cual se asocia a
una tabla y se activa cuando ocurre en esta un evento en particular.

Se usan las siguientes sentencias:

ELIMINAR..DELETE(after)
MODIFICAR..UPDATE(AFTER)
INSERTARINSERT(BEFORE,AFTER)
Se puede activar:
DESPUES.AFTER
ANTESBEFORE





Crate trigger nombre_disparador before insert on nombre_tabla






For each row define lo que se ejecutara cada vez que el disparador se active, lo cual
ocurre una vez para cada fila afectada por la sentencia activada.
Las palabras clave OLD y NEW permite acceder a columnas especificas en los registros d
los cuales estn siendo afectados por los disparadores


Insert into nombre_tabla values (.); En un disparador para INSERT, solamente
puede utilizarse NEW. Nom_col, porque no hay una nueva versin anterior del registro.
En un disparador para DELETE solo puede emplearse OLD. Nom_col porque no hay un
nuevo registr.
en un disparador para UPDATE se puede emplear OLD.nom_col para referirse a las
columnas d un registro
Fase 1 CREATE UN DISPARADOR

Nombre que se le da al
disparador.

Se usa (before, after)
para insertar antes o
despus en dicha tabla

La siguiente instruccin (on)
indica en que tabla se insertar

Fase 2
Fase 3
DROP TRIGGER NOMBRE_DEL TRIGGER;

1.
2. mysql> CREATE TRIGGER T1 BEFORE INSERT EMPLEADO
3. -> FOR EACH ROW
4. -> INSERT INTO empleado_r
VALUES(new.id,new.nombre,new.apaterno,new.amaterno);















BORRAR UN DISPARADOR

También podría gustarte