2. Procedimientos Almacenados (Stored Procedures) 📦
Variables Guardadas permanentemente
Un bloque anónimo está cool para probar, pero ¿qué pasa si quieres ejecutar ese mismo código todos los días? Ahí es cuando lo conviertes en un Procedimiento Almacenado (o Stored Procedure).
Es exactamente lo mismo que una "función" en Java o Python, pero vive permanentemente dentro del motor de la Base de Datos.
Sintaxis de un Procedure
Para guardarlo, le damos un nombre usando CREATE OR REPLACE PROCEDURE y le definimos parámetros de entrada (IN) o de salida (OUT).
¿Por qué son tan usados en las empresas?
- Velocidad: El código ya está compilado en la BD, por lo que corre mucho más rápido que si Node.js mandara 10 queries sueltos.
- Seguridad: Puedes quitarle permisos a los usuarios para hacer un DELETE directo en la tabla Empleados, pero darle permiso para ejecutar el Procedure
DarBonoEmpleado. - Tráfico de red: Mandas solo 1 orden ("Ejecuta el Procedure Y"), en vez de enviar 50 líneas de código SQL por el servidor web cada vez.
🎮 Ejecutando un Procedure
Una vez creado el procedure de arriba, ¿cómo harías para invocarlo desde un bloque anónimo para darle $500 al empleado con ID 10?