这可能是因为我很累,或者我对postgres不太熟悉。但是,我试图在函数中使用临时表,而postgres抱怨“关系不存在”。然而,如果我取出函数体并执行它,它就能正常工作。下面是我尝试创建的函数类型样本。请记住,我已经剥离了一切有趣的东西,以使其接近最小值以显示我的问题。
我收到的投诉与插入语句有关。实际上,投诉的内容是:
CREATE OR REPLACE FUNCTION dbo.somefunc() RETURNS void AS
$BODY$
CREATE TEMPORARY TABLE work_list
(
name text,
level smallint
);
insert into work_list
(name, level)
values
('someone', 25);
$BODY$
LANGUAGE sql VOLATILE;
我收到的投诉与插入语句有关。实际上,投诉的内容是:
ERROR: relation "work_list" does not exist
PostgreSQL是否不支持在函数中使用临时表?还是我缺少某些语法,导致出现了错误信息?
SET check_function_bodies = false;
来防止在函数加载期间出现关系不存在错误。 - Guy