目录

  1. CDC_API/create_mvlog 指定要建更改日志的数据库和表名
  2. CDC_API/get_mvlog 获取给定表给定模式的物化视图日志名称
  3. SQL_API/add_expr 给物化视图增加一个列或者索引
  4. SQL_API/add_table 将一个表添加到物化视图中
  5. SQL_API/create 为一个新的物化视图创建一个物化视图id
  6. SQL_API/disable 禁用物化视图
  7. SQL_API/enable 启用物化视图
  8. SQL_API/remove_expr 某物化视图移除某个列或索引
  9. SQL_API/remove_table 删除某物化视图
  10. SQL_API/set_definition 物化视图刷新语句
  11. UTIL_API/get_id
  12. UTIL_API/get_sql
  13. UTIL_API/refresh/refresh___all
  14. UTIL_API/rename

1.create_mvlog [ Functions ]

Name

flexviews.create_mvlog : 指定要建更改日志的数据库和表名。

Synopsis

flexviews.createmv_log(databasename,tablename)

Function

该函数在某数据库某表上创建一个表更改日志(也就是物化视图日志)。对表进行的任何数据更改都将被FLexCDC以二进制形式记录在表更改日志中。

如果使用FlexCDC的自动更改模式,则不需要使用此函数。当使用此模式时,当检测到表的更改并没有创建日志时,更改日志会自动生成。

如果使用临时表,或者只有少量的表需要记录日志,那么可以考虑不使用自动更改模式,而仅是对某些表进行记录即可。使用该函数会将表添加到要记录的表的列表中。一旦添加了一个表,就不会被删除。

inputs

  • v_schema : The schema (aka database) in which the table resides
  • v_table_name : The name of the table you want to log changes on

Result

mysql client 如不能创建更改日志将会报错

Example

MySQL>

call flexviews.create_mvlog( 'test' , 'mysqltable' )

2.get_mvlog [ Functions ]

Name

flexviews.get_mvlog : 获取给定表给定模式的物化视图日志名称

Synopsis

flexviews.get_mvlog( ‘viewschema’,‘tablename’);

Function

返回表的物化视图名称

Inputs

viewschema : The schema which contains the materialized view

tablename : The name of the table which contains the rows for the view

Result

  • 表不存在或者没有记录返回结果为null
  • 表的记录功能不可用时返回空
  • 除此之外,返回表名

Example

MySQL>

select flexviews.get_mvlog( 'test',‘tablename’);

3.add_expr [ functions ]

Name

flexviews.add_expr : 给物化视图增加一个列或者索引

Synopsis

flexviews.add_expr(v_mview_id, v_expr_type, v_expression, v_alias)

Function

这个函数向物化视图定义添加了一个表达式或索引。这个函数通常只能在禁用的物化视图上调用。

在v_expression中指定的表达式将被添加到物化视图中。如果视图将使用聚合函数,那么应该将非聚合列指定“组”类型。如果视图不使用聚合,那么每个表达式都应该是类型“列”。在表达式中,任何对表列的引用必须完全符合您在 flexviews.ADD \_table()调用中指定的tablealias。例如,如果您添加了一个带有别名'T'的表,那么当您在该表中引用一个列时,您必须在别名中添加前缀:调用flexviews.add expr(flexviews.get \_id('test','mv1'),'GROUP','T.c1”、“group_on_t_c1”);

将表达式添加到视图的WHERE子句中。

4.add_table [ functions ]

Name

flexviews.add_table : 添加物化视图涉及的表

Synopsis

flexviews.add_table(v_mview_id, v_table_schema, v_table_name, v_table_alias, v_join_clause);

Function

将一个表添加到物化视图中

Inputs

  • v_mview___id- The materialized view id
  • v_table_schema - The schema which contains the table to add
  • v_table_name - The name of the table to add
  • v_table_alias - The table alias to use in the view. All tables MUST have an alias.
  • v_join_clause - Every table after the first must have a NOT-NULL join clause

Result

以下两种情形MySQL客户端将会报错:

  • The table does not exist
  • There is no materialized view log on the table

5.create [ functions ]

Name

flexviews.create : 创建物化视图。这是第一步。

Synopsis

flexviews.createflexviews.create(v_schema, v_mview_name, v_refresh_type)

Function

为一个新的物化视图创建一个物化视图id。物化视图标识符存储在last_insert\_id()中,并且还可以使用flexviews.get \_id()访问。

Inputs

  • v_schema : 数据库
  • v_mview___name : 物化视图名称
  • v_refresh___type : 更新模式。incremental 增量备份 ,complete 全备份

Result

如果未能物化视图MySQL客户端将报错

6.disable [ functions ]

Name

flexviews.disable : 禁用物化视图

Synopsis

flexviews.disable(v_mview___id);

Function

该函数会删除掉某物化视图的记录表(该物化视图暂时停止同步),该命令没有提示信息一旦应用将立即删除。

Inputs

v_mview_id :物化视图ID

Result

如果物化视图未被删除,MySQL客户端将会报错

Example

MySQL》call flexviews.disable(flexviews.get\_id('test',‘mv\_example’))

7.enable [ functions ]

Name

flexviews.enable : 物化一个尚未物化的视图。一旦视图被启用,它的结构就不能被改变,除非它被禁用/disable

Synopsis

flexviews.enable(v_mview___id);

Function

这个函数将为物化视图创建表。然后它会使用INSERT。。SELECT 填充视图。一旦对该函数的调用完成,基表上的任何DML语句都将在视图刷新时影响到它。

Inputs

v_mview_id:物化视图ID

Result

如果未能物化视图,MySQL客户端将会报错

8.remove_expr [ Functions ]

Name

flexviews.remove_expr : 物化视图移除某列或者索引

Synopsis

flexviews.remove_expr(v_mview_id,v_alias)

Function

移除某物化视图的某列或者索引

Inputs

  • v_mview_id :物化视图ID
  • v_alias :与add___expr时使用的别名一致

Notes

  • 不能对已启用的物化视图进行修改操作
  • 该方法经常用来修正错误

Example

9.remove_table [ Functions ]

Name

flexviews.remove_table :从物化视图列表中删除某表的物化视图

Synopsis

flexviews.remove_table(v_mview_id,v_table_alias);

Function

这个函数从物化视图列表中删除一个表的物化视图。任何引用此表的表达式也必须手动删除!

Inputs

  • v_mview_id :物化视图ID
  • v_table_alias :与add___table时的表别名一致即可

Result

如果该物化视图处于启用状态,MySQL客户端将报错;如果在视图中不存在给定的别名,就不会出现错误。

10.set_definition [ Functions ]

Name

flexviews.set_definition : 物化视图刷新语句

Synopsis

flexviews.set_definition(v_mview_id,v_sql);

Function

利用CREATE TABLE 。。AS SELECT 创建物化视图并刷新。v_sql 将被用于创建view

Inputs

v_mview_id - The materialized view id (see flexviews.get_id) v_sql - The SELECT statement to use for the view

Result

如果更新未成功,MySQL客户端将报错

11.get_id [ Functions ]

Name

flexviews.get_id : 获取给定物化视图的ID

Synopsis

flexviews.get_id(v_mview_schema,v_mview_name)

Function

获取给定物化视图的ID

Inputs

  • v_mview_schema:包含物化视图的表
  • v_mview_name:

Result

如果视图不存在将返回null

Example

MySQL》set @mv_id : = flexviews.getid(‘test’,‘mv___example’);

12.get_sql [ Functions ]

Name

flexviews.get_sql : 检索SELECT语句,该语句将在常规视图中表示物化视图。

Synopsis

flexviews.get_sql(v_mview_id);

Function

该函数将获取用于为物化视图创建的给定表达式、表等的常规视图的SELECT语句。

Inputs

v_mview_id:视图的ID

Result

创建视图的SQL语句

Example

MySQL》call flexviews.get_sql(1)

13.refresh /refresh_all [ Functions]

Name

flexviews.refresh : 在物化视图创建后,应用对数据库的更改

flexviews.refresh_all:刷新每一个已启用的物化视图

Synopsis

flexviews.refresh(v_mview_id,v_mode,v_uow_id)

Function

这个函数为给定的视图启动刷新进程。这个过程因视图的类型而异

Inputs

  • v_mview_id:物化视图ID
  • v_mode:complete|compute|apply|both
  • v_uow_id:可为null。当一个uowid(事务id)被提供时,上面所选的模式将只对在给定的uowid上或之前创建的记录进行操作。如果提供了NULL值,那么将使用最近提交的事务id。

Notes

  • complete:完整的刷新物化视图。
  • compute:增量刷新
  • apply:应用Compute之前尚未更改的状态
  • both:同时包含compute、apply

Example

mysql>

set @mv_id = flexviews\_id( 'test',‘mv\_example’);

call flexviews.refresh('@mv___id','BOTH',‘NULL’);

14.rename [ Functions ]

Name

flexviews.rename - Rename a materialized views

Synopsis

flexviews.rename(v_mview_id, v_new_schema, v_new_table);

Function

This function renames the given materialized view.

Result

An error will be generated in the MySQL client if the view can not be enabled.

Example

MySQL》call flexviews.rename(flexviews.get_id( 'test',‘mv\_example’,‘new\_name\_example’));

.

results matching ""

    No results matching ""