我正在尝试使用动态SQL在函数内创建一个表,并立即将其复制到另一个表中。
execute 'create table week_temp as
select w.*, ww.*
from employer_weekly w
left join employer_weekly_' || $1 || '_2 ww
on w.w_employer::int = ww.emp_' || $1 || '::int';
drop table if exists employer_weekly;
create table employer_weekly as select * from week_temp;
我收到以下错误:
错误:错误:与OID 9288742的关系不存在
CONTEXT:SQL语句“create table employer_weekly as select * from week_temp“
手动检查,我可以看到week_temp并且可以正确访问它。
欣赏任何线索!
答案 0 :(得分:0)
@a_horse_with_no_name说什么。
但是 - 您遇到的问题是正在编译函数中的非动态语句。这意味着" FROM week_temp"正在查看不再存在的旧版本的week_temp。使该语句也成为动态SQL,它应该可以工作。