Vues, triggers et routines
Au-delà des tables, votre schéma accueille des vues, des triggers et des fonctions. La console les liste, les crée et les supprime avec les mêmes garde-fous que le reste du projet.
Vues
Une vue expose une requête sous la forme d’une table. La console liste celles du schéma et permet de créer ou remplacer une définition : la réécriture est contrôlée avant d’être appliquée, pour ne pas casser les lectures qui en dépendent.
Triggers
Un trigger attache une fonction à une table et réagit aux insertions, mises à jour ou suppressions. La fonction référencée doit déjà exister et retourner un trigger : créez-la avant le trigger.
Fonctions et procédures
Les routines SQL et PL/pgSQL se créent en collant leur DDL. La liste affiche le nom, la signature, le type et le langage ; la suppression cible la signature exacte, jamais tous les homonymes.
- Une fonction qui retourne un ensemble de lignes s’interroge comme une vue, y compris depuis l’API REST.
- Découpez la logique : une fonction courte se teste, se révise et se promouvoir sans risque pour le reste du schéma.
- Ces objets font partie du schéma : les modifier demande un rôle autorisé de l’organisation.
Bonnes pratiques
Tout ce qui vit dans le schéma suit le même chemin que les tables — console ou migration — et se promeut de la même façon. Pour un changement délicat, passez par le sandbox : vous vérifiez la définition en isolation avant de la pousser en production.
SQL
-- Vue : exposer une requête comme une table
CREATE OR REPLACE VIEW taches_ouvertes AS
SELECT id, titre, created_at
FROM mes_taches
WHERE statut = 'ouvert';
-- Fonction de trigger, puis trigger sur la table
CREATE OR REPLACE FUNCTION maj_updated_at() RETURNS trigger
LANGUAGE plpgsql AS $$
BEGIN
NEW.updated_at := now();
RETURN NEW;
END;
$$;
CREATE TRIGGER taches_touch
BEFORE UPDATE ON mes_taches
FOR EACH ROW EXECUTE FUNCTION maj_updated_at();La même définition s’applique depuis la console ou par migration : les deux chemins passent par les garde-fous du schéma.