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

Responder a