我目前正在研究一個報告生成servlet,它聚集來自多個表的信息並生成報告。除了返回結果行之外,我還將它們存儲到報表中,以便它們不需要稍後重新生成,並且如果它們從中抽取的表被擦除,它們將保持不變。對於後者我有形式的語句(注意:X是外部產生的,實際上在此聲明常數):在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
這工作得很好,但後來我需要第二次查詢實際返回結果倒行,例如
SELECT col_a, col_b, col_c
FROM reports
WHERE report_id = x
這工作正常,因爲它僅涉及單個表,不應該是昂貴的,但好像我應該可以直接返回插入避免了第二次查詢的結果。有沒有一些語法來做到這一點,我一直沒有找到? (我應該注意到,我在數據庫工作方面相當新,所以如果正確的答案是隻運行第二個查詢,因爲它只是稍微慢一些,所以它是)
我們正在運行8.4所以這是完美的,謝謝。 – Dusty
+1對於一個堅實的答案和(也)提及版本要求(雖然大多數人現在應該至少8.3) – ChristopheD