Obecnie pracuję nad serwletem generowania raportów, który scala informacje z kilku tabel i generuje raport. Oprócz zwracania wynikowych wierszy przechowuję je również w tabeli raportów, więc nie będą musiały być później regenerowane i będą trwałe, jeśli tabele, z których pochodzą, zostaną wyczyszczone. Aby wykonać ten ostatni mam oświadczenie o formie (NB: x jest zewnętrznie generowane i rzeczywiście stała w tym stwierdzeniem):Zwracanie wstawionych wierszy w PostgreSQL
INSERT INTO reports
(report_id, col_a, col_b, col_c)
SELECT x as report_id, foo.a, bar.b, bar.c
FROM foo, bar
Działa to dobrze, ale potem muszę drugą kwerendę, aby rzeczywiście powrócić otrzymaną wiersze z powrotem, np
SELECT col_a, col_b, col_c
FROM reports
WHERE report_id = x
Działa to dobrze, a ponieważ obejmuje tylko pojedynczą tabelę, nie powinny być drogie, ale wydaje się, że powinienem być w stanie bezpośrednio powrócić wyniki wstawienie unikając drugiego zapytania. Czy jest jakaś składnia do robienia tego, czego nie udało mi się znaleźć? (Powinienem zauważyć, że jestem całkiem nowym pracownikiem DB, więc jeśli właściwą odpowiedzią jest po prostu wykonanie drugiego zapytania, ponieważ jest to tylko nieco wolniej, niech tak będzie),
Biegniemy 8.4, dzięki czemu jest idealny, dzięki. – Dusty
+1 za solidną odpowiedź i (także) wymienienie wymagań dotyczących wersji (chociaż większość ludzi powinna być na razie przynajmniej w wersji 8.3). – ChristopheD