PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

37. Schéma d'information

37.1. Le schéma
37.2. Types de données
37.3. information_schema_catalog_name
37.4. administrable_role_authorizations
37.5. applicable_roles
37.6. attributes
37.7. character_sets
37.8. check_constraint_routine_usage
37.9. check_constraints
37.10. collations
37.11. collation_character_set_applicability
37.12. column_domain_usage
37.13. column_options
37.14. column_privileges
37.15. column_udt_usage
37.16. columns
37.17. constraint_column_usage
37.18. constraint_table_usage
37.19. data_type_privileges
37.20. domain_constraints
37.21. domain_udt_usage
37.22. domains
37.23. element_types
37.24. enabled_roles
37.25. foreign_data_wrapper_options
37.26. foreign_data_wrappers
37.27. foreign_server_options
37.28. foreign_servers
37.29. foreign_table_options
37.30. foreign_tables
37.31. key_column_usage
37.32. parameters
37.33. referential_constraints
37.34. role_column_grants
37.35. role_routine_grants
37.36. role_table_grants
37.37. role_udt_grants
37.38. role_usage_grants
37.39. routine_privileges
37.40. routines
37.41. schemata
37.42. sequences
37.43. sql_features
37.44. sql_implementation_info
37.45. sql_languages
37.46. sql_packages
37.47. sql_parts
37.48. sql_sizing
37.49. sql_sizing_profiles
37.50. table_constraints
37.51. table_privileges
37.52. tables
37.53. transforms
37.54. triggered_update_columns
37.55. triggers
37.56. udt_privileges
37.57. usage_privileges
37.58. user_defined_types
37.59. user_mapping_options
37.60. user_mappings
37.61. view_column_usage
37.62. view_routine_usage
37.63. view_table_usage
37.64. views

Le schéma d'information consiste en un ensemble de vues contenant des informations sur les objets définis dans la base de données courante. Le schéma d'information est défini dans le standard SQL et, donc supposé portable et stable -- contrairement aux catalogues système qui sont spécifiques à PostgreSQL™ et modelés suivant l'implantation. Néanmoins, les vues du schéma d'information ne contiennent pas d'informations sur les fonctionnalités spécifiques à PostgreSQL™ ; pour cela, on utilise catalogues système et autres vues spécifiques à PostgreSQL™.

[Note]

Note

En demandant des informations sur les contraintes dans la base de données, il est possible qu'une requête conforme au standard s'attendant à ne récupérer qu'une ligne en récupère en fait plusieurs. Ceci est dû au fait que le standard SQL requiert que les noms des contraintes soient uniques dans un même schéma mais PostgreSQL™ ne force pas cette restriction. Les noms de contraintes créés automatiquement par PostgreSQL™ évitent les doublons dans le le même schéma mais les utilisateurs peuvent spécifier explicitement des noms existant déjà.

Ce problème peut apparaître lors de la consultation de vues du schéma d'informations, comme par exemple check_constraint_routine_usage, check_constraints, domain_constraints et referential_constraints. Certaines autres vues ont des problèmes similaires mais contiennent le nom de la table pour aider à distinguer les lignes dupliquées, par exemple constraint_column_usage, constraint_table_usage, table_constraints.

37.1. Le schéma

Le schéma d'information est lui-même un schéma nommé information_schema. Ce schéma existe automatiquement dans toutes les bases de données. Le propriétaire de ce schéma est l'utilisateur initial du cluster. Il a naturellement tous les droits sur ce schéma, dont la possibilité de le supprimer (mais l'espace gagné ainsi sera minuscule).

Par défaut, le schéma d'information n'est pas dans le chemin de recherche des schémas. Il est donc nécessaire d'accéder à tous les objets qu'il contient via des noms qualifiés. Comme les noms de certains objets du schéma d'information sont des noms génériques pouvant survenir dans les applications utilisateur, il convient d'être prudent avant de placer le schéma d'information dans le chemin.