> -----Mensaje original-----
> De: Julio Cesar Rodriguez Dominguez
> Enviado el: Lunes, 24 de Agosto de 2009 15:37
> Para: Iván Caballero Cano
> CC: [email protected]
> 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
> <[email protected]> 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.
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo