系统表和系统视图
| 系统表或系统视图 | 差异列 | GaussDB数据库与MySQL的差异 |
|---|---|---|
| information_schema.columns | generation_expression | 该字段输出结果因涉及GaussDB数据库与MySQL的表达式的字符串拼接逻辑的不同而存在差异。 |
| data_type | 该字段输出结果因涉及GaussDB数据库的数据类型format_type输出,目前未修改,与MySQL存在差异。 | |
| column_type | 该字段输出结果因涉及GaussDB数据库的数据类型format_type输出,目前未修改,与MySQL存在差异。 | |
| information_schema.tables | engine | GaussDB数据库中:
|
| version | GaussDB数据库中不支持该字段。 | |
| row_format | GaussDB数据库中不支持该字段。 | |
| avg_row_length | GaussDB数据库下表示使用数据文件除以所有元组数(包括活元组和死元组)的结果。表中没有元组,值为null。 | |
| max_data_length | GaussDB数据库中不支持该字段。 | |
| data_free | GaussDB数据库中表示死元组在总元组中的比例乘以数据文件大小。如果表中没有元组,则为null。 | |
| check_time | GaussDB数据库中不支持该字段。 | |
| create_time | 在GaussDB数据库下,此字段与MySQL行为表现有差异,对于创建视图的情形MySQL中该字段置null,GaussDB数据库则显示实际的创建表时间。数据库自带的表,视图设置null。 | |
| update_time | GaussDB数据库自带的表,视图设置null。 | |
| table_collation | 在GaussDB数据库下,此字段与MySQL行为表现有差异。如果表指定的是视图,则为null。如果指定的表在创建时,未使用COLLATE子句指定列的排序规则,则为null。 | |
| information_schema.statistics | collation | GaussDB数据库只有值A、D,不会是NULL。 |
| packed | GaussDB数据库中不支持该字段。 | |
| sub_part | GaussDB数据库中不支持该字段。 | |
| comment | GaussDB数据库中不支持该字段。 | |
| information_schema.partitions | subpartition_name | GaussDB数据库中,如果分区不是子分区,则为null。 |
| subpartition_ordinal_position | GaussDB数据库中,如果分区不是子分区,则为null。 | |
| partition_method | GaussDB数据库中,分区策略。如果分区不是一级分区,则为null。
| |
| subpartition_method | GaussDB数据库中,子分区策略。如果分区不是二级分区,则为null。
| |
| partition_description | GaussDB数据库中,区分一级分区和二级分区。 | |
| partition_expression | GaussDB数据库中不支持该字段。 | |
| subpartition_expression | GaussDB数据库中不支持该字段。 | |
| data_length | GaussDB数据库中不支持该字段。 | |
| max_data_length | GaussDB数据库中不支持该字段。 | |
| index_length | GaussDB数据库中不支持该字段。 | |
| data_free | GaussDB数据库中不支持该字段。 | |
| create_time | GaussDB数据库中不支持该字段。 | |
| update_time | GaussDB数据库中不支持该字段。 | |
| check_time | GaussDB数据库中不支持该字段。 | |
| checksum | GaussDB数据库中不支持该字段。 | |
| partition_comment | GaussDB数据库中不支持该字段。 | |
| nodegroup | GaussDB数据库中不支持该字段。 |
- 视图中对于整型的类型回显,不支持指定精度范围。如MySQL的bigint(1),GaussDB数据库下对应的是bigint类型,MySQL中bigint(21) unsigned,在GaussDB数据库下对应的是bigint unsigned类型。
- MySQL中int类型,在GaussDB数据库中是integer类型。
- m_schema.columns_priv视图的Column_priv字段、m_schema.tables_priv视图的Table_priv,Column_priv字段、m_schema.procs_priv视图的Routine_type,Proc_priv字段、m_schema.proc视图的type,language,sql_data_access,is_deterministic,security_type,sql_mode字段、m_schema.func视图的type字段均不支持,在此版本中不予显示。
- 由于information_schema.tables、information_schema.statistics、information_schema.partitions中部分字段基于统计信息获取,查看前请先执行ANALYZE,更新统计信息后再查看(如果数据库中更新数据,建议延迟执行ANALYZE)。
- information_schema.statistics包含的索引列需要是创建索引中索引列是完整的表列,如果索引列是表达式,则不在这个视图中。
- information_schema.partitions中一级分区和二级分区分开呈现。
- 视图中的grantee字段,MySQL的格式是'user_name'@'host_name' ,在GaussDB数据库中是被授予权限的用户或角色的名称。
- 视图中的host字段,在GaussDB数据库中返回当前节点的hostname。
- m_schema.tables_priv、information_schema.user_privileges、information_schema.schema_privileges,information_schema.table_privileges、information_schema.column_privileges、m_schema.columns_priv、m_schema.func、m_schema.procs_priv 在MySQL下需要授权后才能查看视图内容,GaussDB数据库可以根据默认权限查看到对应的内容。如对于表t1,在MySQL下需要先对t1给对应的用户授权,才能在权限视图中看到对应的权限信息,GaussDB数据库下则可以直接在视图中看到t1表相关的权限信息。
- m_schema中的系统视图,但在MySQL是系统表。
- information_schema.views中的VIEW_DEFINITION以及information_schema.routines中的ROUTINE_DEFINITION不做字符序控制。
- 《M-Compatibility开发指南》中“Schema”章节所列举的字符类型的视图字段,字符集使用utf8mb4,字符序使用utf8mb4_bin或utf8mb4_general_ci,字符序优先级为《M-Compatibility开发指南》中“SQL参考 > 字符集与字符序 > 字符集和字符序合并规则”所描述的“支持字符序的数据类型的列”的优先级,和MySQL存在差异。