Sql 不考虑类型的下拉视图(Postgres)
我正在尝试将物化视图转换为视图。由于我们的模式是如何部署的,我必须想出一个SQL脚本来删除表名中的任何内容,并重新创建视图。但是,在重新运行此代码时,我收到一个错误,即该视图不是物化视图,我需要改用DROP view。有没有办法绕过这个问题?是否删除视图也将删除物化视图?您可以使用以下功能:Sql 不考虑类型的下拉视图(Postgres),sql,postgresql,view,psql,materialized-views,Sql,Postgresql,View,Psql,Materialized Views,我正在尝试将物化视图转换为视图。由于我们的模式是如何部署的,我必须想出一个SQL脚本来删除表名中的任何内容,并重新创建视图。但是,在重新运行此代码时,我收到一个错误,即该视图不是物化视图,我需要改用DROP view。有没有办法绕过这个问题?是否删除视图也将删除物化视图?您可以使用以下功能: create or replace function drop_any_view(regclass) returns void language plpgsql as $$ begin execut
create or replace function drop_any_view(regclass)
returns void language plpgsql as $$
begin
execute format(
'drop %s view %s',
case (select relkind from pg_class where oid = $1)
when 'm' then 'materialized'
else '' end,
$1
);
end $$;
无论视图是否具体化,该函数都会删除该视图
select drop_any_view('my_view');