information_schema contains information about your database’s tables, columns, indexes, and views. This information can be used for introspection and reflection.
Data exposed by information_schema
To perform introspection on objects, you can either read from the related information_schema table or use one of CockroachDB’s SHOW statements. information_schema tables are read-only.
Tables in information_schema
The virtual schema information_schema contains virtual tables, also called “system views,” representing the database’s objects, each of which is detailed below.
These differ from regular in that they do not show data created from the content of other tables. Instead, CockroachDB generates the data for virtual tables when they are accessed.
A query can specify a table name without a database name (e.g.,
SELECT * FROM information_schema.sequences). See for more information.administrable_role_authorizations
administrable_role_authorizations identifies all roles that the current user has the admin option for.
applicable_roles
applicable_roles identifies all roles whose privileges the current user can use. This implies there is a chain of role grants from the current user to the role in question. The current user itself is also an applicable role, but is not listed.
character_sets
character_sets identifies the character sets available in the current database.
check_constraints
check_constraints contains information about the constraints applied to columns in a database.
collations
collations identifies the collations available in the current database.
collation_character_set_applicability
collation_character_set_applicability identifies which character set the available collations are applicable to.
columns
columns contains information about the columns in each table.
column_privileges
column_privileges identifies all privileges granted on columns to or by a currently enabled role. There is one row for each combination of grantor, grantee, and column (defined by table_catalog, table_schema, table_name, and column_name).
column_udt_usage
column_udt_usage identifies all columns that use data types owned by a currently-enabled role.
constraint_column_usage
constraint_column_usage identifies all columns in a database that are used by some .
enabled_roles
Theenabled_roles view identifies enabled roles for the current user. This includes both direct and indirect roles.
key_column_usage
key_column_usage identifies columns with , , or constraints.
referential_constraints
referential_constraints identifies all referential () constraints.
role_table_grants
role_table_grants identifies which have been granted on tables or views where the grantor or grantee is a currently enabled role. This table is identical to table_privileges.
schema_privileges
schema_privileges identifies which have been granted to each user at the database level.
schemata
schemata identifies the database’s schemas.
sequences
sequences identifies defined in a database.
session_variables
session_variables contains information about the for your session. session_variables contains a variable column and a value column. The value column corresponds to the output of the statement.
For a list of the session variables, see .
For a list of the session variables that have been updated from default values, see .
statistics
statistics identifies table .
table_constraints
table_constraints identifies applied to tables.
table_privileges
table_privileges identifies which have been granted to each user at the table level.
tables
tables identifies tables and views in the database.
type_privileges
type_privileges contains information about privileges on the user-defined types in the current database.
user_privileges
user_privileges identifies global .
views
views identifies in the database.
Empty tables
For compatibility with third-party PostgreSQL and MySQL tooling,information_schema includes the following empty tables:
attributescheck_constraint_routine_usagecolumn_column_usagecolumn_domain_usagecolumn_optionscolumn_statisticscolumns_extensionsconstraint_table_usagedata_type_privilegesdomain_constraintsdomain_udt_usagedomainselement_typesengineseventsfilesforeign_data_wrapper_optionsforeign_data_wrappersforeign_server_optionsforeign_serversforeign_table_optionsforeign_tablesinformation_schema_catalog_namekeywordsoptimizer_traceparameterspartitionspluginsprocesslistprofilingresource_groupsrole_column_grantsrole_routine_grantsrole_udt_grantsrole_usage_grantsroutinesroutine_privilegesschemata_extensionssql_featuressql_implementation_infosql_partssql_sizingst_geometry_columnsst_spatial_reference_systemsst_units_of_measuretable_constraints_extensionstables_extensionstablespacestablespaces_extensionstransformstriggered_update_columnstriggersudt_privilegesusage_privilegesuser_attributesuser_defined_typesuser_mapping_optionsuser_mappingsview_column_usageview_routine_usageview_table_usage
Querying information_schema tables
You can run on the tables in information_schema.
Unless specified otherwise, queries to
information_schema assume the .table_constraints table:
table_constraints table:

