procédure

This commit is contained in:
2025-11-19 07:40:30 +01:00
parent 224137acd5
commit c474f9d16f

View File

@@ -8,13 +8,13 @@ Si une erreur survient **rien** n'est enregistré
```sql ```sql
create or replace procedure add_bank ( create or replace procedure add_bank (
name text name text -- Paramètre d'entrée de la procédure
) )
language plpgsql language plpgsql -- Le langage de programmation utilisé dans la procédure
as $$ as $$ -- chaine de caractères multilignes (entoure le bloc de code)
declare declare -- déclaration des variables
v_holder_id bigint; v_holder_id bigint;
begin begin -- début de la procédure
insert into holder(type) values ('BANK') insert into holder(type) values ('BANK')
returning id into v_holder_id; returning id into v_holder_id;
@@ -24,10 +24,14 @@ begin
raise notice 'Titulaire créé : % = %', raise notice 'Titulaire créé : % = %',
v_holder_id, name; 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 ## Individu
```sql ```sql
@@ -59,6 +63,8 @@ call add_person('Françoise', 'Zanetti', '1995-04-12');
call add_person('Justin', 'Hébrard', '1993-03-11'); call add_person('Justin', 'Hébrard', '1993-03-11');
``` ```
- L'appel d'une procédure se fait avec `call`.
## Société ## Société
```sql ```sql