У меня есть следующие функции в моей базе данных PostgreSQL:Postgres: Временная таблица в функции постоянна. Зачем?
CREATE OR REPLACE FUNCTION get_unused_part_ids()
RETURNS integer[] AS
$BODY$
DECLARE
part_ids integer ARRAY;
BEGIN
create temporary table tmp_parts
as
select vendor_id, part_number, max(price) as max_price
from refinery_akouo_parts
where retired = false
group by vendor_id, part_number
having min(price) < max(price);
-- do some work etc etc
-- simulate ids being returned
part_ids = '{1,2,3,4}';
return part_ids;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION get_unused_part_ids()
OWNER TO postgres;
компилируется, но когда я бег:
select get_unused_part_ids();
временной таблицы, tmp_parts
, по-прежнему существует. После этого я могу сделать выбор. Простите меня, поскольку я привык к определенной функциональности с помощью t-sql/MSSQL. Это не относится к MSSQL. Что я делаю не так?
'on commit drop' в конце инструкции вызывает синтаксическую ошибку. Если вы посмотрите на ответ @ JonathanG, его работы. Измените свой пост за +1. – DJTripleThreat
Хорошая точка, ответ отредактирован. –
спасибо! +1, друг :) – DJTripleThreat