Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 10/11/2015 13:42:08
- thomasp
- Membre
retour de multiples valeurs insérées
Bonjour à tous !
Est-il possible de faire un returning après un insert mais pour des valeurs multiples ? Actuellement, je dois déclarer autant de variables que je fais d'insert pour accueillir les valeurs créées :
declare
id1 integer;
id2 integer;
id3 integer;
begin
create table myTable (id serial, value text);
insert into myTable (value) select "first insert" returning id into id1;
insert into myTable (value) select "second insert" returning id into id2;
insert into myTable (value) select "third insert" returning id into id2;
end
Est-il possible de faire la même chose mais en retournant l'ensemble des valeurs crées dans une table, ce dont j'ai besoin car parfois je ne sais pas le nombre d'insert que je fais s'ils proviennent du résultat d'une requête :
insert into mytable(value)
select "first insert"
union select "second insert"
union select "third insert"
returning id into myReturnTable;
Merci beaucoup !
Hors ligne
#2 10/11/2015 14:03:54
- rjuju
- Administrateur
Re : retour de multiples valeurs insérées
Votre deuxième requête devrait fonctionner, sous réserve de remplacer les guillemets doubles par des guillemets simples.
Julien.
https://rjuju.github.io/
Hors ligne
#3 10/11/2015 16:27:26
- thomasp
- Membre
Re : retour de multiples valeurs insérées
en effet.... merci
Hors ligne
#4 10/11/2015 20:14:55
- edlm
- Membre
Re : retour de multiples valeurs insérées
Je suis un peu étonné que cela puisse fonctionner car, sauf erreur, l'instruction:
insert into mytable(value)
select "first insert"
union select "second insert"
union select "third insert"
returning id into myReturnTable;
retourne plus d'une ligne (3 en l'occurence). Ce qui devrait lever une erreur à l'exécution, non ?
Quel est le type de myReturnTable ?
Éric
Hors ligne
Pages : 1