Gerardo y Alvaro gracias por la ayuda.
Las relaciones no son deferables, pg_contrainst y 
information_schema.table_constraints tiene parte de la información que necesito.
Hacer un ALTER TABLE DROP CONSTRAINT y luego ALTER TABLE ADD CONSTRAINT es lo 
que necesito, pero como puedo obtener la información para hacerlo.
Ej. quiero migrar la tabla Item que está relacionado con movimientos, precios, 
stock, proformas, etc. como obtengo un listado de las tablas relacionadas, el 
nombre y la definición de la relación, necesito que esto sea transparente para 
el usuario, que simplemente escoja la tabla a migrar y el programa se ocupe de 
hacer ALTER TABLE DROP CONSTRAINT, TRUNCATE, MIGRAR Y ALTER TALBE ADD CONSTRAINT
Saludos.Mauricio
 


     El Jueves 27 de agosto de 2015 11:14, Gerardo Herzig <gher...@fmed.uba.ar> 
escribió:
   

 La vista pg_contraints seria un buen punto de partida:
http://www.postgresql.org/docs/current/static/catalog-pg-constraint.html

Puede tambien ser util hacer "psql -E db_name". Luego, haciendo un \d 
nombre_tabla se expondran las consultas internas realizadas. Con un poco de 
trabajo, podras deducir como `psql' te muestra la conformacion de foreign keys.

Otra opcion. Si las FK estan creadas como "deferrables", puedes diferirlas al 
final de la transaccion.
http://www.postgresql.org/docs/current/static/sql-set-constraints.html

HTH
Gerardo

----- Mensaje original -----
> De: "mauricio pullabuestan" <jmaurici...@yahoo.es>
> Para: pgsql-es-ayuda@postgresql.org
> Enviados: Jueves, 27 de Agosto 2015 12:14:21
> Asunto: [pgsql-es-ayuda] Saber cuantas tablas dependen de otra tabla
> 
> 
> 
> 
> Buen día.
> 
> 
> 
> 
> En una base de datos tengo una tabla con varias tablas dependientes
> es decir tengo declara integridad referencial entre estas tablas
> 
> 
> Estamos en proceso de desarrollo y migración, existe varios sistemas
> que están ocupando estas tablas, por varios motivos tenemos la
> necesidad de volver a migrar la tabla padre (por así decirlo)
> Tenemos un programa para migrar que:
> 
>    1.
> inserta
>    2.
> elimina los datos actuales y luego inserta.
> 
> 
> 
> Al ser ser una tabla padre que tienes tablas dependientes no me va a
> permitir eliminar los datos, como puedo mediante código conocer las
> relaciones de la tabla padre, para apagarlas y después de migrar
> volver a prender las relaciones, es posible hacer esto por código?
> 
> 
> Estamos conscientes que se van a presentar problemas, que tendríamos
> que arreglarlos al paso.
> 
> 
> Otra posible solución, sería crear tablas auxiliares, migrar datos y
> luego hacer un Merge, este proceso sería largo, tedioso y se tendría
> que hacer por cada tabla padre, es por eso que tratamos de
> automatizarlo mediante este programa.
> 
> 
> Los datos que se migran son tablas de Visual Foxpro y los nombres de
> los campos son completamente distintos, además de tener muchos
> campos, es por eso que nos apoyamos en un programa.
> 
> 
> Saludos.
> Mauricio
> 
> 
>

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

  

Responder a