Stored Procedures / Functions
PostgreSQL 🟡 MidDefinition
Blocs de code PL/pgSQL stockes et executes cote serveur. Les fonctions retournent une valeur, les procedures (depuis PG 11) supportent les transactions internes.
Analogie
Des macros Excel stockees dans le serveur : un appel declenche toute la logique sans transfert de donnees.
Exemple de code
CREATE FUNCTION get_user_orders(uid INT)
RETURNS TABLE (id INT, total NUMERIC) AS $$
BEGIN
RETURN QUERY
SELECT o.id, o.total
FROM orders o WHERE o.user_id = uid;
END;
$$ LANGUAGE plpgsql;
Cas d'usage
Encapsuler de la logique metier complexe cote serveur pour reduire les allers-retours reseau.
Anti-pattern
Mettre toute la logique applicative en procedures stockees, rendant le debug et les tests tres difficiles.