Re: Consulta para saber las llaves primarias y foraneas de una base de datos

From: Luis Fernando Lopez Aguilar <flopezg333(at)gmail(dot)com>
To: MARIA ANTONIETA RAMIREZ SOLIS <maramirez(at)ulsaneza(dot)edu(dot)mx>
Cc: Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta para saber las llaves primarias y foraneas de una base de datos
Date: 2015-05-18 15:40:32
Message-ID: CADf1K_8LMJz8BLDC8E5AJ9PJo-zDNOKmPGBJPzE=21aD52We9g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Con el debido respeto a todos... esto deberia resumirse en un comando
interno del PostgreSQL.

Esta necesidad es real y con frecuencia, en informix por ejemplo es sacar
un esquema de la base de datos que se resume en

dbschema -d nombrebase -t nombretabla > archivosalida

o

dbschema -d nombrebase > archivosalida

y sale un script sql con create table con sus columnas sus llaves primarias
...foraneas ... constraints ...restricciones a nivel de columna ...etc. es
un full script para crear todas las tablas de la base de datos vacia.

Saludos cordiales
f.l.

2015-05-13 13:17 GMT-04:00 MARIA ANTONIETA RAMIREZ SOLIS <
maramirez(at)ulsaneza(dot)edu(dot)mx>:

>
> Buen dia
>
> Les comparto una consulta que me dio lo que necesitaba , que era saber las
> llaves foraneas y primarias de todas las tablas en un solo query.
>
>
> SELECT tc.table_name,
> tc.constraint_name,
> tc.constraint_type,
> kcu.column_name,
> tc.is_deferrable,
> tc.initially_deferred,
> rc.match_option AS match_type,
> rc.update_rule AS on_update,
> rc.delete_rule AS on_delete,
> ccu.table_name AS references_table,
> ccu.column_name AS references_field
> FROM information_schema.table_constraints tc
> LEFT JOIN information_schema.key_column_usage kcu
> ON tc.constraint_catalog = kcu.constraint_catalog
> AND tc.constraint_schema = kcu.constraint_schema
> AND tc.constraint_name = kcu.constraint_name
> LEFT JOIN information_schema.referential_constraints rc
> ON tc.constraint_catalog = rc.constraint_catalog
> AND tc.constraint_schema = rc.constraint_schema
> AND tc.constraint_name = rc.constraint_name
> LEFT JOIN information_schema.constraint_column_usage ccu
> ON rc.unique_constraint_catalog = ccu.constraint_catalog
> AND rc.unique_constraint_schema = ccu.constraint_schema
> AND rc.unique_constraint_name = ccu.constraint_name
> WHERE lower(tc.constraint_type) in ('foreign key', 'primary key')
> ORDER BY tc.table_name
>
>
> Saludos!!
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eduardo Morras 2015-05-18 16:20:39 Re: Consulta para saber las llaves primarias y foraneas de una base de datos
Previous Message Romero, Fernando 2015-05-18 14:57:42 Replicacion con Streaming Replication