Re: Ordenar la cosnulta segun orden de creación de campos o (OID de campo) y devolver schemma de un FK determinado (pongo sql de ejemplo)

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Yoel Mc Lennan <listas(at)yoel(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ordenar la cosnulta segun orden de creación de campos o (OID de campo) y devolver schemma de un FK determinado (pongo sql de ejemplo)
Date: 2007-11-13 19:21:06
Message-ID: 20071113192105.GE19014@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Yoel Mc Lennan escribió:
> Buenas amigos, tengo un par de problemas quizá puedan tirarme una mano.
>
> Tengo la siguiente consulta que me devuelve los datos de una tabla segun un schema dado, lo que necesito es ordenar los campos de la misma forma que están ordenados en el diseño de la tabla ya que segun ese criterio realizo otras operacónes.

order by attnum

> Esta otra consulta me devuelve los campos que son FK y la tabla
> relacionada lo que necesito es agregar a la consulta el schemma en el
> que se encuentra esa tabla
>
> "mitabla" es el nombre de la tabla de ejemplo y "public" es el schema de ejemplo
>
> SELECT conname,pg_catalog.pg_get_constraintdef(oid) as condef FROM
> pg_catalog.pg_constraint r WHERE r.conrelid = (SELECT c.oid
> FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n
> ON n.oid = c.relnamespace WHERE " c.relname ~ '^mitabla$' AND n.nspname ~ '^public$')
> AND r.contype = 'f';

select n.nspname, conname, ...

En todo caso, la expresion
c.relname ~ '^mitabla$'
es equivalente a
c.relname = 'mitabla'
que es mas simple ..

--
Alvaro Herrera http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"Nadie esta tan esclavizado como el que se cree libre no siendolo" (Goethe)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-11-13 19:58:41 Re: consultas
Previous Message Alvaro Herrera 2007-11-13 18:34:00 Re: Ayuda para respaldos con archivos Wall