espero haber entendido la pregunta y si es asi mira a ver si te sirve esto

SELECT pg_constraint.conname as nombrellave ,  
pg_get_constraintdef(pg_constraint.oid) as definicion, pg_class.relname AS 
tabla,(select b.nspname||'.'||a.relname from pg_class a ,pg_namespace b where  
a.relnamespace=b.oid and  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))


----- Mensaje original -----
De: "Yoel Mc Lennan" <lis...@yoel.com.ar>
Para: pgsql-es-ayuda@postgresql.org
Enviados: Martes, 5 de Abril 2011 11:19:07 (GMT-0500) Auto-Detected
Asunto: [pgsql-es-ayuda] obtener esquema de tabla de una clave foranea




Buenas tanto tiempo J , molestando nuevamente por una consulta; 

En este select necesitaría poder agregar un campo con el esquema al que 
pertenece la tabla a la que hace referencia la clave foránea 

Este select me devuelve un registro para cada FK de la tabla “cuarto” del 
esquema “stock”, lo que me falta es el el esquema al que pertenece la tabla de 
la FK J 

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.relnam 
espace WHERE c.relname ~ '^cuarto$' AND n.nspname ~ '^stock$') AND r.contype = 
'f'; 

Gracias por cualquier pista. 

Yoel 

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a