我创建了一个从特定表中选择*的函数,该表包含我在模式中具有的特定约束的alter命令。我的代码看起来像这样:
v_sql='select * from my_table_alters'
for rec in exec v_sql
loop
raise notice '%',rec
execute rec;
end loop
但是,当我从psql运行我的func时: mydb =>选择my_function(my_parameter); 我得到了下一个错误:
NOTICE: alter table nap_ip_discount drop constraint sys_c008736(I print
that notice its not an error - that what Im trying to execute in my loop..)
constraint "sys_c008736" of relation "nap_ip_discount" does not exist
但是当我检查是否存在该约束时:
mydb=>\d nap_ip_discount drop constraint
我明白了:
"sys_c008736" CHECK (nap_discount_seq IS NOT NULL)
表nap_discount_seq在架构间隙下,但我是该架构的所有者,它也在我的search_path中。