Capítulo 35. Esquema de informações

Índice

35.1. O esquema
35.2. Tipos de dados
35.3. information_schema_catalog_name
35.4. administrable_role_authorizations
35.5. applicable_roles
35.6. attributes
35.7. character_sets
35.8. check_constraint_routine_usage
35.9. check_constraints
35.10. collations
35.11. collation_character_set_applicability
35.12. column_column_usage
35.13. column_domain_usage
35.14. column_options
35.15. column_privileges
35.16. column_udt_usage
35.17. columns
35.18. constraint_column_usage
35.19. constraint_table_usage
35.20. data_type_privileges
35.21. domain_constraints
35.22. domain_udt_usage
35.23. domains
35.24. element_types
35.25. enabled_roles
35.26. foreign_data_wrapper_options
35.27. foreign_data_wrappers
35.28. foreign_server_options
35.29. foreign_servers
35.30. foreign_table_options
35.31. foreign_tables
35.32. key_column_usage
35.33. parameters
35.34. referential_constraints
35.35. role_column_grants
35.36. role_routine_grants
35.37. role_table_grants
35.38. role_udt_grants
35.39. role_usage_grants
35.40. routine_column_usage
35.41. routine_privileges
35.42. routine_routine_usage
35.43. routine_sequence_usage
35.44. routine_table_usage
35.45. routines
35.46. schemata
35.47. sequences
35.48. sql_features
35.49. sql_implementation_info
35.50. sql_parts
35.51. sql_sizing
35.52. table_constraints
35.53. table_privileges
35.54. tables
35.55. transforms
35.56. triggered_update_columns
35.57. triggers
35.58. udt_privileges
35.59. usage_privileges
35.60. user_defined_types
35.61. user_mapping_options
35.62. user_mappings
35.63. view_column_usage
35.64. view_routine_usage
35.65. view_table_usage
35.66. views

O esquema de informações consiste em um conjunto de visões que contêm informações sobre os objetos definidos no banco de dados corrente [111]. O esquema de informações é definido no padrão SQL e, portanto, pode-se esperar que seja portável e permaneça estável — diferentemente dos catálogos do sistema, que são específicos do PostgreSQL e são modelados segundo questões de implementação. Entretanto, as visões do esquema de informações não contêm informações sobre recursos específicos do PostgreSQL; para saber mais sobre estes recursos, é necessário consultar os catálogos do sistema, ou outras visões específicas do PostgreSQL.

Nota

Ao consultar o banco de dados em busca de informações sobre restrição, é possível que uma consulta compatível com o padrão, que se espera retornar uma linha, retorne várias linhas. Isto ocorre porque o padrão SQL exige que os nomes das restrições sejam únicos em um esquema, mas o PostgreSQL não impõe esta restrição. Os nomes de restrições gerados automaticamente pelo PostgreSQL evitam duplicidades no mesmo esquema, mas os usuários podem especificar nomes duplicados.

Este problema pode ocorrer ao consultar visões do esquema de informações como check_constraint_routine_usage, check_constraints, domain_constraints e referential_constraints. Algumas outras visões têm problemas semelhantes, mas contêm o nome da tabela para ajudar a distinguir linhas duplicadas como, por exemplo, constraint_column_usage, constraint_table_usage e table_constraints.

Outros esquemas de informações (N.T.)

MySQL Information Schema
Microsoft SQL Server 2025 – System Information Schema Views (Transact-SQL)
IBM i 7.6.0 – ANS and ISO catalog views
SingleStore – Information Schema View List


[111] As visões do Esquema de Informações (Information Schema) são visões de tabelas definidas em termos das tabelas-base do Esquema de Definições (Definition Schema). O único propósito do Esquema de Definições é fornecer um modelo de dados para apoiar o Esquema de Informações e auxiliar na sua compreensão. Uma implementação SQL não precisa fazer mais do que simular a existência do Esquema de Definições, conforme visto através das visões do Esquema de Informações (ISO/IEC 9075-2:1999 (E)) (N. T.)