SELECT .. INTO для создания таблицы в PL / pgSQL
Я хочу использоватьSELECT INTO
сделать временную таблицу в одной из моих функций.SELECT INTO
работает в SQL, но не в PL / pgSQL.
Этот оператор создает таблицу с именем mytable (еслиorig_table
существует как отношение):
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
Но поместите эту функцию в PostgreSQL, и вы получите ошибку:ERROR: "temp" is not a known variable
CREATE OR REPLACE FUNCTION whatever()
RETURNS void AS $$
BEGIN
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
END; $$ LANGUAGE plpgsql;
Я могуSELECT INTO
переменная типаrecord
в PL / pgSQL, но затем я должен определить структуру при получении данных из этой записи.SELECT INTO
это действительно просто - автоматически создать таблицу с той же структуройSELECT
запрос. Есть ли у кого-нибудь объяснение, почему это не работает внутри функции?
Это похоже наSELECT INTO
в PL / pgSQL работает иначе, потому что вы можете выбрать переменные, которые вы объявили. Однако я не хочу объявлять структуру моей временной таблицы. Я хотел бы просто создать структуру автоматически, как это делает в SQL.