¿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_constraint
indica 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_position
deberían usarse. Elposition_in_unique_constraint
no es nulo solo en el uso de FK.Esta es una respuesta más precisa:
Te perdiste la
and kc.constraint_name = tc.constraint_name
parte, por lo que enumera todas las restricciones.fuente
and kc.position_in_unique_constraint is not null
parte 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