Tengo una gran base de datos que necesito para extraer todas las claves primarias y claves externas de cada tabla.
Tengo pgAdmin III.
¿Hay alguna manera de hacer esto automáticamente y no revisar cada tabla manualmente?
postgresql
foreign-key
primary-key
pgadmin
Nick Ginanto
fuente
fuente
WHERE contype IN ('f', 'p', 'u')
Basado en la solución Erwin:
Devolverá una tabla de forma:
fuente
No es necesario analizar
pg_get_constraintdef()
, solo use columnas depg_constraint
tabla para obtener otros detalles ( los documentos ).Aquí
constraint_type
puede ser:Basado en la respuesta de Erwin :
Los resultados están ordenados por
schema
ytable
.Nota técnica: ver esta pregunta sobre
with ordinality
.fuente
Recientemente tuve que implementar esto para una capa de acceso a datos que construye utilidades CRUD basadas en el esquema de información, y terminó con esto.
fuente