Skip to main content

信息 schema

信息 schema 由一组视图组成,其中包含当前数据库中定义的对象的相关信息。

information_schema.tables 视图包含当前数据库中定义的所有表、视图、sink 和物化视图。

note

物化视图是 RisingWave 的信息 schema 特有的,不包括在 PostgreSQL 的信息 schema 中。

information_schema.tables 视图包含以下列。

类型描述
table_catalogvarchar当前数据库的名称
table_schemavarchar包含表、视图或物化视图的 schema 的名称。用户创建对象的默认 schema 是 public
table_namevarchar表、视图或物化视图的名称
table_typevarchar表、视图或物化视图的类型。用户定义的表的类型为 BASE TABLE,非物化视图的视图的类型为 VIEW,物化视图的类型为 MATERIALIZED VIEW,系统表的类型为 SYSTEM TABLE
is_insertable_intovarchar如果表或视图是可插入的,则为 YES,否则为 NO。用户定义的表始终是可插入的,而视图和物化视图不一定可插入。

视图

information_schema.views 视图包含数据库中视图的信息。

它包含以下列。

类型类型
table_catalogvarchar当前数据库的名称
table_schemavarchar包含视图的 schema 的名称
table_namevarchar视图的名称
view_definitionvarchar定义视图的 SQL 语句
临时限制

拥有对 information_schema.views 的访问权限的用户可能可以访问所有视图,这可能存在安全风险。我们正在努力解决这一限制。修复完成后,此消息将被删除。

information_schema.columns 视图包含数据库中所有表、视图和物化视图的列信息。

类型描述
table_catalogvarchar当前数据库的名称
table_schemavarchar包含表、sink、视图或物化视图的 schema 名称。用户创建对象的默认 schema 是 public
table_namevarchar表、sink、视图或物化视图的名称
column_namevarchar列的名称
ordinal_positionint32列在表中的序数位置(计数从 1 开始)
is_nullablevarchar如果列可能为可空,则为 YES;如果列不为空,则为 NO
data_typevarchar列的数据类型

如何使用信息 schema 视图?

可以使用各种信息 schema 视图来确定数据库中表、sink、视图和物化视图的构成。

例如,可以查询当前数据库中所有表、视图和物化视图的名称和类型:

SELECT table_name, table_type
FROM information_schema.tables;

查询名为 taxi_trip 的表、sink、视图或物化视图中的所有列:

SELECT column_name
FROM information_schema.columns
WHERE table_name='taxi_trip';

要查找包含名为 trip_id 的列的表、sink、视图和物化视图:

SELECT table_name
FROM information_schema.columns
WHERE column_name='trip_id';