En este artículo vamos a profundizar en uno de los sistemas integrados de PostgreSQL, conocido como information_schema.
¿Qué es Information_Schema?
Information_schema es un catálogo del sistema que forma un conjunto estándar de vistas con información sobre los objetos de la base de datos PostgreSQL; en esencia, es una metabase de datos que guarda información sobre tu base de datos actual. Está presente en todos los motores de bases de datos SQL que cumplen con el estándar, lo que lo hace bastante útil al migrar.
Hay que tener en cuenta que information_schema es de solo lectura y no permite insertar información nueva ni modificar los datos existentes. Empecemos a explorar las distintas vistas de information_schema que pueden serte muy útiles en diversas tareas.
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'information_schema';
El código es compatible con todas las versiones de PostgreSQL.
Al ejecutarlo, este código devolverá una lista de todas las vistas disponibles para los usuarios dentro de information_schema.
¿Por qué usar Information_Schema?
information_schema es fundamental cuando quieres trabajar de forma más eficiente con las estructuras de la base de datos, sobre todo en lo relacionado con:
- Tablas
- Columnas
- Índices
- Triggers
- Restricciones
- Esquemas
Information_Schema.Tables
La vista information_schema.tables contiene detalles sobre todas las tablas de la base de datos conectada.
SELECT table_name
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
AND table_schema NOT IN ('pg_catalog', 'information_schema');
El código es compatible con todas las versiones de PostgreSQL. El resultado será una lista de todas las tablas base de tu base de datos.
Information_Schema.Columns
La vista information_schema.columns es donde puedes obtener detalles específicos de las columnas de tu base de datos.
SELECT table_name, column_name, data_type
FROM information_schema.columns
WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
AND table_name = 'your_table';
El código es compatible con cualquier versión de PostgreSQL. Reemplaza ‘your_table’ con el nombre de tu tabla para obtener una lista de todas las columnas con sus tipos de datos dentro de la tabla indicada.
Information_Schema.Triggers
La información sobre los triggers puede ser útil al depurar o para entender dependencias. La vista information_schema.triggers se usa para obtener detalles sobre los triggers vinculados a la base de datos.
SELECT event_object_table, trigger_name, action_statement, action_timing
FROM information_schema.triggers;
Esta configuración de código, compatible con todas las versiones de PostgreSQL, devolverá el nombre de la tabla, el nombre del trigger, la acción del trigger y su momento de ejecución.
Information_Schema.Key_Column_Usage
La vista information_schema.key_column_usage ofrece información que facilita entender las relaciones de llaves foráneas en tu base de datos.
SELECT constraint_name, table_name, column_name, ordinal_position
FROM information_schema.key_column_usage
WHERE table_name = 'your_table';
Reemplaza ‘your_table’ con el nombre de tu tabla y ejecuta el código, compatible con todas las versiones de PostgreSQL, para obtener constraint_name, table_name, column_name y ordinal_position de cada llave de la tabla indicada.
Conclusión
En este tutorial desentrañamos los detalles de information_schema de PostgreSQL. Aprovechando sus vistas, puedes tener más control y obtener una visión más clara de la estructura y los elementos de tu base de datos. Si vienes a PostgreSQL desde otra base de datos SQL, las vistas de information_schema te resultarán especialmente útiles, ya que son una parte estándar de SQL.
Tu aventura con PostgreSQL no termina aquí. Mantente al pendiente de las próximas guías, donde profundizaremos en el vasto universo de PostgreSQL con temas más avanzados, tips y trucos.
Beekeeper Studio es un cliente de bases de datos gratuito y de código abierto
La mejor herramienta de consultas y edición de SQL que he usado. Tiene todo lo que necesito para administrar mi base de datos. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio es rápido, intuitivo y fácil de usar. Es compatible con muchísimas bases de datos y funciona de maravilla en Windows, Mac y Linux.
Lo que dicen los usuarios de Beekeeper Studio
"Beekeeper Studio reemplazó por completo mi antiguo flujo de trabajo con SQL. Es rápido, intuitivo y hace que trabajar con bases de datos vuelva a ser agradable."
"He probado muchas GUI de bases de datos, pero Beekeeper logra el equilibrio perfecto entre funciones y simplicidad. Simplemente funciona."