¿Hay alguna consulta que haga eso?
Encontré algunas consultas que pueden hacer esto para una tabla, pero no pude modificarla, así que puedo ver:
tablename | column | type
postgresql
schema
korda
fuente
fuente

Respuestas:
Algo como esto:
fuente
tc.constraint_type = 'PRIMARY KEY'solo mostrará las claves principales. Sin embargo, cada clave principal está respaldada por un índice únicoposition_in_unique_constraintindica la posición para la clave EXTRANJERA, siempre es nula para las claves primarias. La columna correcta esordinal_position. Probado en PG 9.4.ordinal_positiondeberían usarse. Elposition_in_unique_constraintno es nulo solo en el uso de FK.Esta es una respuesta más precisa:
Te perdiste la
and kc.constraint_name = tc.constraint_nameparte, por lo que enumera todas las restricciones.fuente
and kc.position_in_unique_constraint is not nullparte que falta . Y le recomendamos encarecidamente que use ANSI JOIN (aunque muchos lo consideran una cuestión de gustos).Por favor considere esto también. Esto generará el script para alterar todas las tablas.
fuente
Creo que obtener la clave primaria y la clave externa deberían hacer esto. kc.position_in_unique_constraint no es nulo, esta condición solo puede obtener claves foráneas.
fuente