Stored Procedures / Functions

PostgreSQL 🟡 Mid

Dé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

Mettre toute la logique applicative en procédures stockées, rendant le debug et les tests très difficiles.

Termes liés

#sgbd#interview#database#postgresql

En entretien

  1. 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.

  2. 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

← → au clavier pour passer d'une fiche à l'autre