> -----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@postgresql.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 > <ivanhalen77postgre...@gmail.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. -- TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo