В настоящее время я работаю над сервлет-генератором отчетов, который агломерирует информацию из нескольких таблиц и создает отчет. В дополнение к возврату результирующих строк я также храню их в таблице отчетов, поэтому позже их не нужно будет восстанавливать, и они будут сохраняться, если таблицы, из которых они сделаны, были стерты. Для последнего у меня есть заявление вида (NB: х внешне генерируется и фактически постоянным в этом заявлении):Возврат вставленных строк в 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