Procedimiento Almacenados
Un procedimiento es un subprograma que ejecuta una acción específica y que no devuelve ningún valor. Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código.
CREATE
CREATE
PROCEDURE <nombre_procedure> [(<param1> [IN|OUT|IN OUT]
<type>, <param2> [IN|OUT|IN OUT]
<type>, ...)]
BEGIN
-- Sentencias
END;
La lista de parámetros entre paréntesis debe estar siempre presente. Si no hay parámetros, se debe usar una lista de parámetros vacía ( ) . Cada parámetro es un parámetro IN por defecto. Para especificar otro tipo de parámetro, use la palabra clave OUT o INOUT antes del nombre del parámetro. Especificando IN, OUT, o INOUTsólo es valido para una PROCEDURE.
Al especificar el tipo de dato del parámetro no debemos especificar la longitud del tipo.
Los parámetros pueden ser de entrada (IN), de salida (OUT) o de entrada salida (IN OUT). El valor por defecto es IN, y se toma ese valor en caso de que no especifiquemos nada.
END;
La lista de parámetros entre paréntesis debe estar siempre presente. Si no hay parámetros, se debe usar una lista de parámetros vacía ( ) . Cada parámetro es un parámetro IN por defecto. Para especificar otro tipo de parámetro, use la palabra clave OUT o INOUT antes del nombre del parámetro. Especificando IN, OUT, o INOUTsólo es valido para una PROCEDURE.
Al especificar el tipo de dato del parámetro no debemos especificar la longitud del tipo.
Los parámetros pueden ser de entrada (IN), de salida (OUT) o de entrada salida (IN OUT). El valor por defecto es IN, y se toma ese valor en caso de que no especifiquemos nada.
Disparadores (Trigger)
Un disparador (o trigger) es un tipo especial de procedimiento almacenado asociado a una tabla que se ejecuta al realizar una operación “básica” (INSERT, un DELETE o un UPDATE) sobre ésta. La operación básica que despierta al trigger es conocida como sentencia disparadora.
La ejecución del disparador puede ser antes (before) o después (after) de llevar a cabo la sentencia disparadora. Es posible especificar condiciones adicionales para la ejecución del disparador (restrictores).
Los disparadores sea activan al crearlos.
Eliminar un disparador: DROP TRIGGER nombre_disparador;
Activar/ Desactivar dispadores: Existen dos opciones.
ALTER TRIGGER nombre_disparador {DISABLE | ENABLE};
ALTER TABLE nombre_tabla {ENABLE | DISABLE} ALL TRIGGERS;
Temporalidad del Evento: AFTER / BEFORE
BEFORE: Ejecutan la acción asociada antes de que la sentencia sea ejecutada
CREATE TRIGGER NombreTrigger
BEFORE Insert ON NombreTabla ….
AFTER: Ejecutan la acción asociada después de que se haya ejecutado la sentencia
AFTER Insert ON NombreTabla
{BEFORE | AFTER } // Temporalidad del Evento
{INSERT | DELETE | UPDATE} ON <tabla>
[FOR EACH ROW] //Granularidad
BEGIN
cuerpo del trigger
END