Chapter 31. 信息模式

Table of Contents
31.1. 关于这个模式
31.2. 数据类型
31.3. information_schema_catalog_name
31.4. applicable_roles
31.5. check_constraints
31.6. column_domain_usage
31.7. column_privileges
31.8. column_udt_usage
31.9. columns
31.10. constraint_column_usage
31.11. constraint_table_usage
31.12. data_type_privileges
31.13. domain_constraints
31.14. domain_udt_usage
31.15. domains
31.16. element_types
31.17. enabled_roles
31.18. key_column_usage
31.19. parameters
31.20. referential_constraints
31.21. role_column_grants
31.22. role_routine_grants
31.23. role_table_grants
31.24. role_usage_grants
31.25. routine_privileges
31.26. routines
31.27. schemata
31.28. sql_features
31.29. sql_implementation_info
31.30. sql_languages
31.31. sql_packages
31.32. sql_sizing
31.33. sql_sizing_profiles
31.34. table_constraints
31.35. table_privileges
31.36. tables
31.37. triggers
31.38. usage_privileges
31.39. view_column_usage
31.40. view_table_usage
31.41. views

信息模式由一组视图组成,它们包含有关当前数据库里定义的对象的 信息。信息模式时 SQL 标准里定义的,因此可以认为是可以移植的, 并且是相对稳定的 — 和系统表不一样,系统表是 PostgreSQL 特有的,是在实现的基础上进行建模的。但信息模式视图不包含有关 PostgreSQL 特有的特性的信息; 你可以利用它查询有关系统表或者其它 PostgreSQL 相关的视图。

31.1. 关于这个模式

信息模式本身是一个叫 information_schema 的模式。 这个模式自动存在于所有数据库中。这个模式的所有者是数据库集群中的最初的数据库用户,并且这个用户天然就拥有这个模式上的所有权限, 包括删除它的权限(不过这么干省下来的空间小的可怜)。

缺省的时候,信息模式不在模式搜索路径中,因此,你需要用全称来访问里面的所有对象。 因为信息模式里的一些对象的名字是可能在用户应用中出现的普通名字,所以, 如果你想把信息模式放在路径中的话,那你一定要小心。