diff --git a/banque.procedures.md b/banque.procedures.md index f64287d..3f8e415 100644 --- a/banque.procedures.md +++ b/banque.procedures.md @@ -8,13 +8,13 @@ Si une erreur survient **rien** n'est enregistré ```sql create or replace procedure add_bank ( - name text + name text -- Paramètre d'entrée de la procédure ) -language plpgsql -as $$ -declare +language plpgsql -- Le langage de programmation utilisé dans la procédure +as $$ -- chaine de caractères multilignes (entoure le bloc de code) +declare -- déclaration des variables v_holder_id bigint; -begin +begin -- début de la procédure insert into holder(type) values ('BANK') returning id into v_holder_id; @@ -24,10 +24,14 @@ begin raise notice 'Titulaire créé : % = %', v_holder_id, name; -end; -$$; +end; -- fin de la procédure +$$; -- fin de la chaine de caractères multiligne ``` +- `plpgsql` (PL/pgSQL) langage de programmation procédural. Les requêtes ne sont plus indépendantes les unes des autres mais sont assemblée dans un programme (procedure) avec des variables , des boucles, des conditions. +- `returning into` capturer la sorie d'un requête dans une variable. +- `raise notice` affiche un message dans la console. Le nombre de variables doit être égal au nombre de % + ## Individu ```sql @@ -59,6 +63,8 @@ call add_person('Françoise', 'Zanetti', '1995-04-12'); call add_person('Justin', 'Hébrard', '1993-03-11'); ``` +- L'appel d'une procédure se fait avec `call`. + ## Société ```sql