Stored Procedures / Functions

PostgreSQL 🟡 Mid

Definition

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.

Termes lies

#sgbd#interview#database#postgresql