pg 判断表或者模式是否存在 满足条件后执行创建表sql

记录一下。

是这么个事,执行初始化脚本的时候报错了 ,原因是引用了其他模式下的表,但是这个模式还没有创建,就导致我有个视图无法创建。

其实这玩意有两个方法,要不然就判断下其他模式下的脚本是否存在,存在后你再创建这个视图。还有一个就是别放初始化脚本里,放到增补脚本里面,等有了需要的模式后再去执行。

create or replace function create_view_a() returns void as $$ declare viewExist integer;
begin
        select count(1) into viewExist FROM pg_namespace WHERE nspname = 'basedata'; --判断条件,可自己定义其他条件
	if viewExist != 0 then
			execute
			'CREATE VIEW view_a  AS
			SELECT
			aaa,bbb,ccc
			FROM  basedata.table_a;';
	 end if;
end;
$$ language plpgsql;
SELECT create_view_a()   

  

posted @ 2023-01-09 13:16  不是安逸  阅读(223)  评论(0编辑  收藏  举报