在PostgreSQL中,如何从if语句内部触发脚本



如果存在特定的模式,我想运行一些sql脚本。这是我的尝试:

do $$
begin
if exists (select 1 from information_schema.schemata where schema_name = 'public')
then
ir ./script.sql
end if;
end
$$;

但我得到了这个错误:

$ psql my_database -f test.sql 
psql:test.sql:8: ERROR:  syntax error at or near ""
LINE 5:     ir ./script.sql

没有if语句的同一脚本可以工作,并且能够触发./script.sql

script.sql中的代码直接添加到if语句中也可以,if语法似乎没有任何问题。

如何有条件地触发SQL脚本?

在PL/pgSQL中不能这样做。

您可以用PL/PerlU或PL/Python编写一个函数来实现这一点,也可以安装PL/sh语言。

最新更新