Stored Procedures / Functions
PostgreSQL 🟡 MidDéfinition
Blocs de code PL/pgSQL stockes et exécutés cote serveur. Les fonctions retournent une valeur, les procédures (depuis PG 11) supportent les transactions internes.
Analogie
Des macros Excel stockées dans le serveur : un appel déclenché toute la logique sans transfert de données.
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 métier complexe cote serveur pour réduire les allers-retours réseau.
Anti-pattern
Termes liés
En entretien
Quelle différence entre une fonction et une procédure stockée en PostgreSQL ?
Les fonctions retournent une valeur, alors que les procédures, supportées depuis PostgreSQL 11, gèrent des transactions internes. Les deux sont écrites en PL/pgSQL et exécutées côté serveur.
Quand faut-il éviter d'abuser des procédures stockées ?
Quand on y met toute la logique applicative, car cela rend le debug et les tests très difficiles. Elles sont surtout utiles pour encapsuler une logique métier précise et réduire les allers-retours réseau.
Fiche mise à jour le 2026-09-27