可视化创建MySQL非表对象
MySQL 数据库除了库、表等对象外,还有常见的几类对象,如视图(VIEW)、存储过程(PROCEDURE)、函数(FUNCTION)、触发器(TRIGGER)、事件(EVENT),本文介绍如何通过 SQL 窗口可视化地创建|编辑这些对象。
背景信息
非表对象(如视图、存储过程、函数、触发器和事件)是 MySQL 非常重要的组成部分,帮助企业更有效地管理和操作数据。通常情况下,创建和编辑这些非表对象通常需要编写复杂的 SQL 语句,而使用数据库的用户通常是多样性的,有专业人员(例如开发人员、DBA),也有非专业人员(例如需要分析业务的普通员工等),因此,用户对于更直观、易用的工具的需求也日益增加。
可视化工具提供了直观的图形界面,帮助用户可以通过图形界面来创建和编辑非表对象,而无需编写 SQL 语句。这大大简化了数据库管理的过程,即使是初级用户也能够轻松地管理数据库。
前提条件
- 数据源类型为 MySQL。
- 开启企业版后,需要拥有 SQL 窗口功能模块权限。
- 开启企业版后,需要拥有对目标数据源的读写权限。
说明
创建视图
- 打开 SQL 窗口并进入目标数据源。
-
在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击创建对象 > 创建视图。
注意:
- 视图将会创建在该数据库中。
- 您也可以展开目标数据库,右键单击该数据库的 Views 目录,然后单击创建视图。
-
在创建视图页签中,即可开始以可视化的方式创建视图,系统会根据您的配置自动在页面下方生成 创建语句。各参数详情,请参见下表。
参数 说明 View Name 自定义视图的名称,默认为 new_view。 Database 选择需要创建视图的库,默认为步骤 2 中右键单击的数据库。 Definer 指定当前视图的定义者。如果为空,则默认定义者为当前用户。 SQL Security 选择视图被调用时使用的权限。 - 默认:不指定。
- Definer:使用当前视图定义者的权限进行查询。Invoker:使用视图调用者的权限进行查询
Check Option 添加 Check Option 选项,默认代表不添加。更多信息,请参见官方文档。 ALGORITHM 添加 Algorithm 选项,默认代表不添加。更多信息,请参见官方文档。 REPLACE 勾选该选项,则当前库中存在同名视图时,使用当前视图替换该同名视图。 - 在创建语句下方的编辑器的白色区域,输入该视图要执行的查询语句。
- 单击保存,在弹出的提交变更窗口中,确认生成的 SQL 语句,然后单击确定。
创建存储过程
- 打开 SQL 窗口并进入目标数据源。
-
在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击创建对象 > 创建存储过程。
注意:
- 存储过程将会创建在该数据库中。
- 您也可以展开目标数据库,右键单击该数据库的 Procedures 目录,然后单击创建存储过程。
-
在创建存储过程页签中,即可开始以可视化的方式创建存储过程,系统会根据您的配置自动在页面下方生成 创建语句。各参数详情,请参见下表。
参数 说明 存储名称 自定义存储过程的名称,默认为 new_procedure。 Database 选择需要创建存储过程的库,默认为步骤 2 中右键单击的数据库。 Definer 指定当前存储过程的定义者。如果为空,则默认定义者为当前用户。 Deterministic 用于指定存储过程的执行结果是否是确定性的。 - 默认:不指定。
- DETERMINISTIC:确定性,即对于相同的输入参数,它将总是返回相同的结果。
- NOT DETERMINISTIC:非确定性,即对于相同的输入参数,它可能返回不同的结果,例如随机数生成或时间戳。
SQL 属性 选择存储过程的执行方式: - 默认:不指定。
- CONTAINS SQL:存储过程包含 SQL 语句,但不会读取或修改数据。
- NO SQL:存储过程不包含 SQL 语句。
- READS SQL DATA:存储过程包含读取数据的 SQL 语句,但不会修改数据。
- MODIFIES SQL DATA:存储过程包含修改数据的 SQL 语句。
SQL Security 选择存储过程被调用时使用的权限。 - 默认:不指定。
- Definer:使用当前存储过程定义者的权限。
- Invoker:使用存储过程调用者的权限。
注释 存储过程的注释内容。 参数 为存储过程代入参数。 - 在创建语句编辑器的 BEGIN 下方,输入该存储过程的实际内容。
- 单击保存,在弹出的提交变更窗口中,确认生成的 SQL 语句,然后单击确定。
创建函数
- 打开 SQL 窗口并进入目标数据源。
-
在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击创建对象 > 创建函数。
注意:
- 函数将会创建在该数据库中。
- 您也可以展开目标数据库,右键单击该数据库的 Functions 目录,然后单击创建函数。
-
在创建函数页签中,即可开始以可视化的方式创建函数,系统会根据您的配置自动在页面下方生成 创建语句。各参数详情,请参见下表。
参数 说明 Function Name 自定义函数的名称,默认为 new_function。 Database 选择需要创建函数的库,默认为步骤 2 中右键单击的数据库。 Definer 指定当前函数的定义者。如果为空,则默认定义者为当前用户。 Deterministic 用于指定函数的执行结果是否是确定性的。 - DETERMINISTIC:确定性,即对于相同的输入参数,它将总是返回相同的结果。
- NOT DETERMINISTIC:非确定性,即对于相同的输入参数,它可能返回不同的结果,例如随机数生成或时间戳。
Returns 选择函数返回的数据量类型。 SQL Security 选择函数被调用时使用的权限。 - 默认:不指定。
- Definer:使用当前函数定义者的权限。
- Invoker:使用函数调用者的权限。
注释 函数的注释内容。 参数 为函数代入参数。 - 在创建语句编辑器的白色区域,输入该函数的实际内容。
- 单击保存,在弹出的提交变更窗口中,确认生成的 SQL 语句,然后单击确定。
创建触发器
- 打开 SQL 窗口并进入目标数据源。
-
在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击创建对象 > 创建触发器。
注意:
- 触发器将会创建在该数据库中。
- 您也可以展开目标数据库,右键单击该数据库的 Triggers 目录,然后单击创建触发器。
-
在创建触发器页签中,即可开始以可视化的方式创建触发器,系统会根据您的配置自动在页面下方生成 创建语句。各参数详情,请参见下表。
参数 说明 Trigger Name 自定义触发器的名称,默认为 new_trigger。 库/表 选择需要创建触发器的库和目标需要监控的表,默认为步骤 2 中右键单击的数据库。 Definer 指定当前触发器的定义者。如果为空,则默认定义者为当前用户。 触发顺序 如果目标需要监控的表中已经存在触发器,可以选择优先级: - 默认:不指定优先级,按照触发器的创建时间顺序触发。
- FOLLOWS:已存在的触发器优先,您还需要在右侧选择目标已存在的触发器。
- PROCEDES:当前触发器优先,您还需要在右侧选择目标已存在的触发器。
Trigger Time 选择触发器的触发时机: - BEFORE:触发器将在监控到目标事件发生之前触发,主要用于组织对数据的不良更改或先导操作。
- AFTER:触发器将在监控到目标事件发生之后执行。
Trigger Event 选择触发器监听的具体操作: - INSERT:插入操作。
- UPDATE:更新操作。
- DELETE:删除操作。
- 在创建语句编辑器的白色区域,输入该触发器的实际内容。
- 单击保存,在弹出的提交变更窗口中,确认生成的 SQL 语句,然后单击确定。
创建事件
- 打开 SQL 窗口并进入目标数据源。
-
在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击创建对象 > 创建事件。
注意:
- 事件将会创建在该数据库中。
- 您也可以展开目标数据库,右键单击该数据库的 Events 目录,然后单击创建事件。
-
在创建事件页签中,即可开始以可视化的方式创建事件,系统会根据您的配置自动在页面下方生成 创建语句。各参数详情,请参见下表。
参数 说明 Event Name 自定义事件的名称,默认为 new_event。 Database 选择需要创建事件的库,默认为步骤 2 中右键单击的数据库。 Definer 指定当前事件的定义者。如果为空,则默认定义者为当前用户。 执行后删除 是否自动删除事件: - 默认:不指定。
- ON COMPLETION PRESERVE:当前事件执行完毕后保留。
- ON COMPLETION NOT PRESERVE:当前事件执行完毕后删除。
运行状态 选择事件的状态: - 默认:不指定。
- ENABLE:开启该事件。
- DISABLE:仅存储该事件,但是不生效。
- DISABLE ON SLAVE:该事件在从库中不生效。
执行时间 指定该事件的执行次数和执行时间: - 一次性:仅执行一次,还需要在后面指定具体的执行时间。
- 周期性:循环执行,还需要在后面指定执行周期,以及该循环周期的起始和结束时间。
注释 事件的注释内容。 - 在创建语句编辑器的白色区域,输入该事件的实际内容。
- 单击保存,在弹出的提交变更窗口中,确认生成的 SQL 语句,然后单击确定。
管理非表对象
您可以在 SQL 窗口中,对 MySQL 非表对象执行可视化的创建、编辑、重命名、复制、删除操作。
- 打开 SQL 窗口并进入目标数据源。
- 右键单击目标库下的非表对象名称,选择对应的操作即可。