El 9 de julio de 2009 11:23, Javier Chávez B.<jchav...@gmail.com> escribió: > > > 2009/7/9 Ronald <ronaldrive...@gmail.com> >> >> Necesitas obtener las DDL supongo, desde una aplicacion cliente hecha por >> ti o tan desde un ide de bd? >> >> El 9 de julio de 2009 11:57, Javier Chávez B. <jchav...@gmail.com> >> escribió: >>> >>> Estimados : >>> >>> Existe alguna manera de saber mediante un script sobre las tablas de >>> sistema que tablas hacen referencia a una tabla, o sea saber donde el >>> identificador de una tabla en particular esta siendo utilizada como llave >>> foranea por otras... >>> >>> Agradezco cualquier orientacion .. >>> >>> Slds. >>> J. > > O sea la idea es un select sobre las tablas de sitema donde le pase por > parametro un tabla / campo y me retorne que tablas le hacen referencia , me > entiendes? no necesito el DDL necesito saber quienes "estan apuntando a.. " > ya que necesito actualizar unas claves primarias por lo tanto tengo que > partir por saber que integridades debo cumplir, me queda el camino largo y > apestoso de abrir las tablas una por una en PGAdmin y ver las referencias > pero creo que debe haber una manera mas automatica de hacerlo .. el tema es > que no he dado con ello aun ... > Slds.
Alvaro ya dio la solución, veamos si te sirve de todos modos: SELECT (SELECT relname FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.oid=r.conrelid) as nombre,conname, pg_catalog.pg_get_constraintdef(oid, true) as condef from pg_catalog.pg_constraint r WHERE r.conrelid in ( SELECT c.oid FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relname !~ 'pg_' and c.relkind = 'r' AND pg_catalog.pg_table_is_visible(c.oid)) AND r.contype = 'f' ; -- TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net