Un procedimiento almacenado (stored procedure en inglés) es
un programa (o procedimiento) almacenado físicamente en una base de datos. Su
implementación varía de un gestor de bases de datos a otro. La ventaja de un
procedimiento almacenado es que al ser ejecutado, en respuesta a una petición
de usuario, es ejecutado directamente en el motor de bases de datos, el cual
usualmente corre en un servidor separado. Como tal, posee acceso directo a los
datos que necesita manipular y sólo necesita enviar sus resultados de regreso
al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes
cantidades de datos salientes y entrantes.
Los usos 'típicos' de los procedimientos almacenados se
aplican en la validación de datos, integrados dentro de la estructura del banco
de datos. Los procedimientos almacenados usados con tal propósito se llaman
comúnmente disparadores, o triggers. Otro uso común es la 'encapsulación' de un
API para un proceso complejo o grande que podría requerir la 'ejecución' de
varias consultas SQL, tales como la manipulación de un conjunto de datos enorme
para producir un resultado resumido. También pueden ser usados para el control
de gestión de operaciones, y ejecutar procedimientos almacenados dentro de una
transacción de tal manera que las transacciones sean efectivamente
transparentes para ellos.
El siguiente es un ejemplo de procedimiento almacenado en
MySQL:
DELIMITER |
CREATE PROCEDURE autos (IN velocidad INT, IN marca
VARCHAR (50))
BEGIN
IF velocidad < 120 THEN
INSERT
INTO familiares VALUES (velocidad, marca);
ELSE
INSERT
INTO deportivos VALUES (velocidad, marca);
END
IF;
END;
|
El procedimiento se manda llamar de la siguiente manera:
El procedimiento se manda llamar de la siguiente manera:
CALL NOMBRE
DEL PROCEDIMIENTO (LOS VALORES A USAR);
No hay comentarios:
Publicar un comentario