--- On Sun, 9/13/09, Juan José (Pepe) <[email protected]> wrote:

From: Juan José (Pepe) <[email protected]>
Subject: [pgsql-es-ayuda] Ayuda con consulta.
To: "Mariano Reingart" <[email protected]>
Cc: "PostgreSQL" <[email protected]>
Date: Sunday, September 13, 2009, 7:59 PM

#yiv1715724246 p {margin:0;}Hola a amigos tengo una cosulta que me da los 
atributos de los campos de una tabla pero quiero mejorrarla por que cuando 
existen dos tablas con el mismo nombre en schemas distintos se me queda  en la 
primera aparicion. es decir queiro arrreglarla para pasar el schema y el nombre 
de la tabla. 

--Esta fucniona pero sin especificar el schema quiero que tambien se le 
especifique el schema en alguna parte. Abajo intente hacer algo pero no me 
funciono.


      SELECT
        a.attnum,
        a.attname AS field,
        t.typname AS type,
        format_type(a.atttypid, a.atttypmod) AS complete_type,
        a.attnotnull AS isnotnull,
       (SELECT 't'
              FROM pg_index
              WHERE c.oid = pg_index.indrelid
              AND pg_index.indkey[0] = a.attnum
              AND pg_index.indisprimary = 't'
         ) AS pri,
           (SELECT pg_attrdef.adsrc
             FROM pg_attrdef
             WHERE c.oid = pg_attrdef.adrelid
             AND pg_attrdef.adnum=a.attnum
             ) AS default          
           FROM pg_attribute a, pg_class c, pg_type t 
        WHERE c.relname = 'Dat_email'
        AND a.attnum > 0
        AND a.attrelid = c.oid
        AND a.atttypid = t.oid
        ORDER BY a.attnum 
         

       -- INNER JOIN  information_schema.column_udt_usage 
on(information_schema.column_udt_usage.table_name = 'Dat_email')
       -- WHERE information_schema.column_udt_usage.table_schema = 'public'

Puedes revisar este enlace

http://www.postgresql.org/docs/8.3/interactive/ecpg-dynamic.html

o prueba realizar una funcion en perl




      

Responder a