1.使用to_regclass函数(首选方法)
速度最快,9.4或更高版本首选这个函数
if( to_regclass('test') is null ) then
你的代码
end if;
或包含架构
if( to_regclass('public.test') is null ) then
/*你的代码*/
end if;
2.使用pg_class系统表
if( (select 1 from pg_class where relname='test'::name and relkind='r') is null ) then
/*你的代码*/
end if;
如果要包含架构可以使用下面的方法
if( (select 1 from pg_class as c
join pg_namespace as n on n.oid=c.relnamespace
where n.nspname='public'::name and c.relname='test'::name and c.relkind='r')
is null ) then
/*你的代码*/
end if;
3.使用information_schema.tables
if( (select 1 from information_schema.tables
where table_schema = 'public' and table_name = 'test')
is null ) then
/*你的代码*/
end if;
4.使用pg_tables catalog
if( (select 1 from pg_tables
where schemaname = 'public' and tablename = 'test')
is null ) then
/*你的代码*/
end if;