RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ¿Existe alguna función para verificar si existe una tabla en la BD PostGreSQL?

From: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>
To: "'Julio Cesar Rodriguez Dominguez'" <jurasec(at)gmail(dot)com>, 'Iván Caballero Cano' <ivanhalen77postgresql(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ¿Existe alguna función para verificar si existe una tabla en la BD PostGreSQL?
Date: 2009-08-24 18:52:43
Message-ID: 245B6A10B5C7482885DB5BB66A23A0B0@iptel.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> -----Mensaje original-----
> De: Julio Cesar Rodriguez Dominguez
> Enviado el: Lunes, 24 de Agosto de 2009 15:37
> Para: Iván Caballero Cano
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ¿Existe alguna
> función para verificar si existe una tabla en la BD PostGreSQL?
>
>
>
> El 24 de agosto de 2009 13:31, Iván Caballero Cano
> <ivanhalen77postgresql(at)gmail(dot)com> escribió:
>
>
> Buenos Días:
> ¿Existe alguna función para verificar si existe una
> tabla en la BD PostGreSQL?
>
> Gracias.
> --
> TIP 5: ¿Has leído nuestro extenso FAQ?
> http://www.postgresql.org/docs/faqs.FAQ.html
>
>
>
>
> puedes crearla tu, manejando esta posible excepción,
> comparando el código de error que genera postgresql 42P01
> [UNDEFINED TABLE]
> http://www.postgresql.org/docs/8.4/static/errcodes-appendix.html
>

Me parece es mejor resolverlo consultándo pg_tables.
Va un ejemplo rudimentario de como sería la función que necesitas:

create or replace function existetabla(ptabla text, pschema text)
returns boolean as
$BODY$
declare
res boolean;
begin
select true into res
from pg_tables where schemaname = coalesce(pschema, 'public') and
tablename = ptabla;

return coalesce(res, false);
end;
$BODY$
LANGUAGE 'plpgsql' immutable;

uso:
pg> select existetabla('mitabla', 'miesquema');
t

Saludos.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Chávez B. 2009-08-24 18:53:03 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ¿Existe alguna función para verificar si existe una tabla en la BD PostGreSQL?
Previous Message Iván Caballero Cano 2009-08-24 18:52:10 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ¿Existe alguna función para verificar si existe una tabla en la BD PostGreSQL?