我想编写 sqitch 部署脚本来创建新版本的触发器。为了确保恢复脚本将功能恢复到以前的版本,我想对此功能进行备份。有没有办法用新名称复制(重命名为不起作用!)触发功能?
问问题
1453 次
1 回答
2
重命名为应该工作。您是否忘记了括号或将它们包括在另一边?
带有 alter table rename 的括号有点棘手:
postgres=# create function test() returns bool language sql as $$ select true; $$;
CREATE FUNCTION
postgres=# alter function test() rename to old_test();
ERROR: syntax error at or near "("
LINE 1: alter function test() rename to old_test();
^
postgres=# alter function test() rename to old_test;
ALTER FUNCTION
如果这还不够,那么您可以在解析DO
和EXECUTE
重命名 pg_get_functiondef 后输出:
select * from pg_get_functiondef('old_test'::regproc);
于 2016-08-05T11:23:54.243 回答