Skip site navigation (1) Skip section navigation (2)

RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ?==?Windows-1252?Q?¿Existe alguna función para verificar si existe una ?==?Windows-1252?Q?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] ?==?Windows-1252?Q?¿Existe alguna función para verificar si existe una ?==?Windows-1252?Q?tabla en la BD PostGreSQL?
Date: 2009-08-24 18:52:43
Message-ID: 245B6A10B5C7482885DB5BB66A23A0B0@iptel.com.ar (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Javier Chávez B.Date: 2009-08-24 18:53:03
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ¿Existe a?==?ISO-8859-1?Q?lguna función para verificar si existe una tabla en la BD P?==?ISO-8859-1?Q?ostGreSQL?
Previous:From: Iván Caballero CanoDate: 2009-08-24 18:52:10
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] ¿Existe a?==?ISO-8859-1?Q?lguna función para verificar si existe una tabla en la BD P?==?ISO-8859-1?Q?ostGreSQL?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group