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()