Re: como saber si un smallint esta contenido en un smallint[]

From: anthony <asotolongo(at)uci(dot)cu>
To: Arcel Labrada Batista <alabradab(at)uci(dot)cu>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: como saber si un smallint esta contenido en un smallint[]
Date: 2013-03-27 15:10:42
Message-ID: 51530BF2.8050606@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

ha que bien colega, bueno aquí te dejo una que te puede ayudar a lo que
deseas con las FK:

SELECT pg_constraint.conname as nombrellave ,
pg_get_constraintdef(pg_constraint.oid) as definicion, pg_class.relname AS
tabla,(select a.relname from pg_class a where
a.oid=pg_constraint.confrelid) as
tablaforanea,
case confmatchtype
when 'u' then 'MATCH simple '
when 'f' then 'MATCH full'
when 'p' then 'MATCH partial'
end as tipo,
case confupdtype
when 'a' then 'no action '
when 'r' then 'restrict'
when 'c' then 'cascade'
when 'n' then 'set null'
else
'default'
end as onupdate ,
case confdeltype
when 'a' then 'no action '
when 'r' then 'restrict'
when 'c' then 'cascade'
when 'n' then 'set null'
else
'default'
end as ondelete
FROM pg_constraint, pg_class
WHERE (pg_constraint.contype = 'f'::"char") AND (pg_constraint.conrelid =
pg_class.oid)

saludos

El 27/03/13 10:57, Arcel Labrada Batista escribió:
> gracias anthony, realmente ya encontré lo que buscaba, es una consulta
> de apoyo para tratar de eliminar todos los contraints de mi BD de
> manera dinámica y luego volverlos a construir, por ahora lo que tengo
> es lo siguiente
>
> select ct.conname,cl.relname,atr.attname from pg_constraint ct inner
> join pg_class cl on (ct.conrelid = cl.oid) inner join pg_attribute atr
> on (atr.attrelid =cl.oid and atr.attnum = any(ct.conkey)) ;
>
> esto me devuelve el nombre del contraint, nombre de la tabla y del
> atributo que tiene el contraint, ahora voy a agregarle a quien hace
> referencia y el operador pero ya mi duda fue resuelta utilizando la
> ayuda de postgres, específicamente el trabajo con arreglo
>
> ------------------------------------------------------------------------
> *De: *"anthony" <asotolongo(at)uci(dot)cu>
> *Para: *pgsql-es-ayuda(at)postgresql(dot)org
> *Enviados: *Miércoles, 27 de Marzo 2013 9:49:27
> *Asunto: *Re: [pgsql-es-ayuda] como saber si un smallint esta
> contenido en un smallint[]
>
> cual es la consulta , que necesitas saber, a lo mejor hay otra via de
> obtenerlo.
> saludos
>
> El 27/03/13 10:45, Arcel Labrada Batista escribió:
>
> Estoy tratando de hacer una consulta al catalogo de postgres entre
> las tabla pg_constraint y pg_attribute, en la tabla pg_constraint
> existe un campo que se llama conkey que segun el catalogo hace
> referencia al campo attnum de pg_attribute, pero resulta que
> realmente es un smallint[], puede contener varios pg_attribute y
> necesito saber como preguntar esto para hacer el inner join,
> espero haberme explicado bien, gracias de antemano
>
>
>
>
>
> <http://www.uci.cu/>

http://www.uci.cu

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Arcel Labrada Batista 2013-03-27 16:22:28 Re: como saber si un smallint esta contenido en un smallint[]
Previous Message Arcel Labrada Batista 2013-03-27 14:57:19 Re: como saber si un smallint esta contenido en un smallint[]