我试图定义一个引用将在将来定义的临时表的函数,但是在创建时遇到以下错误:
DROP FUNCTION IF EXISTS test_function();
CREATE FUNCTION test_function()
RETURNS void AS $$
SELECT * FROM temp_table
$$ LANGUAGE SQL;
错误:关系“ _temp_table”不存在第7行:FROM temp_table
有没有一种方法可以定义一个引用不存在的表的Postgresql函数?
我可以在函数创建过程中创建一个空的临时表-但这有点丑陋...
任何帮助将不胜感激...
谢谢
答案 0 :(得分:1)
在加载函数时,您可以使用check_function_bodies
关闭引用,这是由pg_dump完成的。
set check_function_bodies = off;
DROP FUNCTION IF EXISTS test_function();
CREATE FUNCTION test_function()
RETURNS void AS $$
//your code actually doing something with tables/functions that don't exist yet
$$ LANGUAGE SQL;
set check_function_bodies = on;