Re: Saber cuantas tablas dependen de otra tabla

From: mauricio pullabuestan <jmauriciopb(at)yahoo(dot)es>
To: Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Saber cuantas tablas dependen de otra tabla
Date: 2015-08-27 18:02:13
Message-ID: 1748341593.2121979.1440698533172.JavaMail.yahoo@mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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 <gherzig(at)fmed(dot)uba(dot)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" <jmauriciopb(at)yahoo(dot)es>
> Para: pgsql-es-ayuda(at)postgresql(dot)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(at)postgresql(dot)org)
Para cambiar tu suscripci�:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2015-08-27 18:11:44 Re: Saber cuantas tablas dependen de otra tabla
Previous Message Alvaro Herrera 2015-08-27 18:02:06 Re: Consulta agrupadas por valores consecutivos