procédure
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user