我想知道是否可以在不对依赖对象进行级联类型更改的情况下重命名 Postgres 表?例如,
create table test_1(id int);
create function test_1_funct (param test_1[]) returns void as $body$
begin
return;
end
$body$
language plpgsql;
alter table test_1 rename to test_2 ;
-- function test_1_funct signature silently changed,
-- so it now accepts test_2[].
我想模拟类似于 Oracle 所做的行为 - 将函数标记为无效,让我使用旧名称创建表,然后根据需要重新编译该函数。事实上,它不允许我drop table test_2
。
它不是。不应该。表解析为表示它们关系的 oid。
更改他们的“名称”本质上是对
relname
. 无论如何,您正在谈论的内容看起来如何:如果您test_1_funct
在重命名后打电话会发生什么?它期望什么类型?