Una buena alternativa
El 24 de agosto de 2009 13:52, Fernando Hevia<fhe...@ip-tel.com.ar> escribió: > > >> -----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 8: explain analyze es tu amigo