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