PostgreSQL判断表是否存在最快的方法

来源:互联网 发布:linux shell 判断大小 编辑:程序博客网 时间:2024/05/17 05:55

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;
原创粉丝点击