Я не могу найти ясное объяснение синтаксиса для создания (и использования) таблиц только для внутренних вычислений функции. Может ли кто-нибудь дать мне пример синтаксиса, пожалуйста?Временная таблица postgresql function
Из того, что я нашел, я попробовал это (с и без @
до того temp_table
):
CREATE FUNCTION test.myfunction()
RETURNS SETOF test.out_table
AS $$
DECLARE @temp_table TABLE
(
id int,
value text
)
BEGIN
INSERT INTO @temp_table
SELECT id, value
FROM test.another_table;
INSERT INTO test.out_table
SELECT id, value
FROM @temp_table;
RETURN END
$$ LANGUAGE SQL;
я получаю:
ERROR: syntax error at or near "DECLARE" LINE 5: DECLARE @temp_table TABLE
-
Я также попытался Предлагаемый подход CREATE TABLE here, таким образом:
CREATE FUNCTION test.myfunction()
RETURNS SETOF test.out_table
AS $$
CREATE TABLE temp_table AS
SELECT id, value
FROM test.another_table;
INSERT INTO test.out_table
SELECT id, value
FROM temp_table;
$$ LANGUAGE SQL;
И я получаю это:
ERROR: relation "temp_table " does not exist LINE 11: FROM temp_table
(Очевидно, я знаю temp_table не нужно для того, что я делаю в коде выше, но это не главное :) => Я хочу чтобы понять синтаксис, чтобы заставить его работать)
Postgres использует временные таблицы для этой цели. Переменные таблицы являются особенностью SQL Server. –
Где в руководстве вы находите синтаксис 'DECLARE @temp_table TABLE ...'? –