Vous pouvez utiliser les CTE, si vous voulez tout cela dans une seule déclaration :
with foo as (
select * from ...
),
b as (
insert into bar
select * from foo
returning *
)
insert into baz
select * from foo;
Remarques :
- Vous devez inclure des listes de colonnes avec
insert
. - Vous devez spécifier les noms de colonne explicitement pour le
select *
. Ceci est important car les colonnes peuvent ne pas correspondre dans les deux tableaux. - J'utilise toujours
returning
avecupdate
/insert
/delete
dans les CTE. C'est le cas d'utilisation normal -- vous pouvez donc récupérer les identifiants de série à partir d'une insertion, par exemple.