Problema:
Quiere encontrar los nombres de las restricciones en una tabla en PostgreSQL.
Ejemplo:
Queremos mostrar los nombres de las restricciones en la tabla student .
Solución:
SELECT conname, contype FROM pg_catalog.pg_constraint JOIN pg_class t ON t.oid = c.conrelid WHERE t.relname ='student';
Aquí está el resultado:
| connombre | contipo |
|---|---|
| student_age_check | c |
| student_pkey | p |
| student_personal_number_key | u |
| student_country_id_fkey | f |
Discusión:
Para encontrar el nombre de una restricción en PostgreSQL, use la vista pg_constraint en el pg_catalog esquema. Únase a la vista pg_catalog.pg_constraint con la vista pg_class (JOIN pg_class t ON t.oid = c.conrelid ) y use el relname columna para filtrar las restricciones por nombre de tabla. En nuestro ejemplo, seleccionamos las restricciones de la tabla student (WHERE t.relname ='student' ).
Seleccionar columnas conname y contype para ver el nombre de la restricción junto con el tipo de restricción. En la columna contype , el valor 'p' es para una clave principal, 'f' es para una clave externa, 'u' es para UNIQUE restricción, y 'c' es para CHECK restricción.
Por ejemplo, puede ver la restricción llamada student_pkey para la clave principal en el student mesa. El contype columna le dice el tipo de restricción, que para la clave principal es p . El conname columna en esta vista también le informa sobre la tabla que contiene esta restricción.