----- Mensaje original ----- 
De: "Lennin Caro" <lennin.c...@yahoo.com> 
Para: pgsql-es-ayuda@postgresql.org, "felipe fernandez" <ffdezrg...@gmail.com> 
Enviados: Miércoles, 17 de Junio 2009 9:54:45 GMT -05:00 Región oriental EE. 
UU./Canadá 
Asunto: Re: [pgsql-es-ayuda] Consulta 


> 
> Estoy migrando un framework php que he desarrollado para 
> mysql a postgresq pero no logro averiguar como obtener los 
> comentarios que se ponen a un campo en una tabla. En mysql 
> lo obtengo con "describe table". En postgresql he 
> conseguido esa informacion con una query que en encontrado 
> en san google 
> 
> 
> SELECT 
> 
> a.attname AS Field, 
> 
> t.typname || '(' || a.atttypmod || ')' AS 
> Type, 
> 
> CASE WHEN a.attnotnull='t' THEN 'YES' ELSE 
> 'NO' END as Null, 
> 
> 
> 
> CASE WHEN r.contype='p' THEN 'PRI' ELSE 
> '' END as Key, 
> 
> (SELECT substring(pg_catalog.pg_get_expr(d.adbin, 
> d.adrelid), '\'(.*)\'') 
> 
> 
> 
> FROM pg_catalog.pg_attrdef d 
> 
> WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND 
> a.atthasdef) AS Default, 
> 
> '' as Extras, 
> 
> 
> 
> '' as Comment, 
> 
> '' as Collation, 
> 
> '' as Privileges 
> 
> FROM 
> 
> 
> 
> pg_class c 
> 
> JOIN pg_attribute a ON a.attrelid = c.oid 
> 
> JOIN pg_type t ON a.atttypid = t.oid 
> 
> LEFT JOIN pg_catalog.pg_constraint r ON c.oid=r.conrelid 
> 
> 
> 
> AND r.conname = a.attname 
> 
> WHERE 
> 
> c.relname = '".$tabla."' 
> 
> and a.attnum > 0 
> 
> 
> 
> Pero no logro encontrar donde rayos están los 
> comentarios. 
> -- 
> Salu2 
> 


para obtener los comentarios puedes usar unas funciones definidas en postgresql 

aqui te dejo dos consultas 

--Obtener el comentario de una tabla 
Select 
relname as tabla, 
obj_description(a.oid,'pg_class') 
from pg_class as a 

--Obtener el comentario de un campo 
select 
b.relname as tabla, 
a.attname as columna, 
col_description(a.attrelid, a.attnum) 
from pg_attribute as a, pg_class as b 
where b.oid = a.attrelid 


saludos... 



-- 
TIP 2: puedes desuscribirte de todas las listas simultáneamente 
(envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org) 

Responder a