跳到主要内容

可视化创建 MySQL 非表对象

MySQL 数据库除了库、表等对象外,还有常见的几类对象,如视图(VIEW)、存储过程(PROCEDURE)、函数(FUNCTION)、触发器(TRIGGER)、事件(EVENT),本文介绍如何通过 SQL 窗口可视化地创建|编辑这些对象。

背景信息

非表对象(如视图、存储过程、函数、触发器和事件)是 MySQL 非常重要的组成部分,帮助企业更有效地管理和操作数据。通常情况下,创建和编辑这些非表对象通常需要编写复杂的 SQL 语句,而使用数据库的用户通常是多样性的,有专业人员(例如开发人员、DBA),也有非专业人员(例如需要分析业务的普通员工等),因此,用户对于更直观、易用的工具的需求也日益增加。

可视化工具提供了直观的图形界面,帮助用户可以通过图形界面来创建和编辑非表对象,而无需编写 SQL 语句。这大大简化了数据库管理的过程,即使是初级用户也能够轻松地管理数据库。

前提条件

  • 数据源类型为 MySQL。

  • 如果处于组织模式下,拥有 SQL 窗口功能模块权限。

  • 如果处于组织模式下,拥有对目标数据源的读写权限。

    提示

    如果您无上述权限,请联系您组织的系统管理员为您配置权限绑定角色

  • 在商业化版本下(),请确保您的包年包月订阅未过期,否则将无法正常使用数据库 DevOps 服务。您可以在 NineData 控制台页面右上方快速查看剩余配额以及到期时间。check_quota

创建视图

  1. 打开 SQL 窗口并进入目标数据源

  2. 在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击 >

    提示
    • 视图将会创建在该数据库中。
    • 您也可以展开目标数据库,右键单击该数据库的 Views 目录,然后单击
  3. 页签中,即可开始以可视化的方式创建视图,系统会根据您的配置自动在页面下方生成 。各参数详情,请参见下表。

    参数说明
    View Name自定义视图的名称,默认为 new_view
    Database选择需要创建视图的库,默认为步骤 2 中右键单击的数据库。
    Definer指定当前视图的定义者。如果为空,则默认定义者为当前用户。
    SQL Security选择视图被调用时使用的权限。
    • :不指定。
    • Definer:使用当前视图定义者的权限进行查询。
    • Invoker:使用视图调用者的权限进行查询。
    Check Option添加 Check Option 选项,代表不添加。更多信息,请参见官方文档
    ALGORITHM添加 Algorithm 选项,代表不添加。更多信息,请参见官方文档
    REPLACE勾选该选项,则当前库中存在同名视图时,使用当前视图替换该同名视图。
  4. 下方的编辑器的白色区域,输入该视图要执行的查询语句。

  5. 单击,在弹出的窗口中,确认生成的 SQL 语句,然后单击

创建存储过程

  1. 打开 SQL 窗口并进入目标数据源

  2. 在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击 >

    提示
    • 存储过程将会创建在该数据库中。
    • 您也可以展开目标数据库,右键单击该数据库的 Procedures 目录,然后单击
  3. 页签中,即可开始以可视化的方式创建存储过程,系统会根据您的配置自动在页面下方生成 。各参数详情,请参见下表。

    参数说明
    自定义存储过程的名称,默认为 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:使用存储过程调用者的权限。
    存储过程的注释内容。
    为存储过程代入参数。
  4. 编辑器的 BEGIN 下方,输入该存储过程的实际内容。

  5. 单击,在弹出的窗口中,确认生成的 SQL 语句,然后单击

创建函数

  1. 打开 SQL 窗口并进入目标数据源

  2. 在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击 >

    提示
    • 函数将会创建在该数据库中。
    • 您也可以展开目标数据库,右键单击该数据库的 Functions 目录,然后单击
  3. 页签中,即可开始以可视化的方式创建函数,系统会根据您的配置自动在页面下方生成 。各参数详情,请参见下表。

    参数说明
    Function Name自定义函数的名称,默认为 new_function
    Database选择需要创建函数的库,默认为步骤 2 中右键单击的数据库。
    Definer指定当前函数的定义者。如果为空,则默认定义者为当前用户。
    Deterministic用于指定函数的执行结果是否是确定性的。
    • DETERMINISTIC:确定性,即对于相同的输入参数,它将总是返回相同的结果。
    • NOT DETERMINISTIC:非确定性,即对于相同的输入参数,它可能返回不同的结果,例如随机数生成或时间戳。
    Returns选择函数返回的数据量类型。
    SQL Security选择函数被调用时使用的权限。
    • :不指定。
    • Definer:使用当前函数定义者的权限。
    • Invoker:使用函数调用者的权限。
    函数的注释内容。
    为函数代入参数。
  4. 编辑器的白色区域,输入该函数的实际内容。

  5. 单击,在弹出的窗口中,确认生成的 SQL 语句,然后单击

创建触发器

  1. 打开 SQL 窗口并进入目标数据源

  2. 在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击 >

    提示
    • 触发器将会创建在该数据库中。
    • 您也可以展开目标数据库,右键单击该数据库的 Triggers 目录,然后单击
  3. 页签中,即可开始以可视化的方式创建触发器,系统会根据您的配置自动在页面下方生成 。各参数详情,请参见下表。

    参数说明
    Trigger Name自定义触发器的名称,默认为 new_trigger
    选择需要创建触发器的库和目标需要监控的表,默认为步骤 2 中右键单击的数据库。
    Definer指定当前触发器的定义者。如果为空,则默认定义者为当前用户。
    如果目标需要监控的表中已经存在触发器,可以选择优先级:
    • :不指定优先级,按照触发器的创建时间顺序触发。
    • FOLLOWS:已存在的触发器优先,您还需要在右侧选择目标已存在的触发器。
    • PROCEDES:当前触发器优先,您还需要在右侧选择目标已存在的触发器。
    Trigger Time选择触发器的触发时机:
    • BEFORE:触发器将在监控到目标事件发生之前触发,主要用于组织对数据的不良更改或先导操作。
    • AFTER:触发器将在监控到目标事件发生之后执行。
    Trigger Event选择触发器监听的具体操作:
    • INSERT:插入操作。
    • UPDATE:更新操作。
    • DELETE:删除操作。
  4. 编辑器的白色区域,输入该触发器的实际内容。

  5. 单击,在弹出的窗口中,确认生成的 SQL 语句,然后单击

创建事件

  1. 打开 SQL 窗口并进入目标数据源

  2. 在 SQL 窗口左侧数据库列表中,右键单击目标数据库,并单击 >

    提示
    • 事件将会创建在该数据库中。
    • 您也可以展开目标数据库,右键单击该数据库的 Events 目录,然后单击
  3. 页签中,即可开始以可视化的方式创建事件,系统会根据您的配置自动在页面下方生成 。各参数详情,请参见下表。

    参数说明
    Event Name自定义事件的名称,默认为 new_event
    Database选择需要创建事件的库,默认为步骤 2 中右键单击的数据库。
    Definer指定当前事件的定义者。如果为空,则默认定义者为当前用户。
    是否自动删除事件:
    • :不指定。
    • ON COMPLETION PRESERVE:当前事件执行完毕后保留。
    • ON COMPLETION NOT PRESERVE:当前事件执行完毕后删除。
    选择事件的状态:
    • :不指定。
    • ENABLE:开启该事件。
    • DISABLE:仅存储该事件,但是不生效。
    • DISABLE ON SLAVE:该事件在从库中不生效。
    指定该事件的执行次数和执行时间:
    • :仅执行一次,还需要在后面指定具体的执行时间。
    • :循环执行,还需要在后面指定执行周期,以及该循环周期的起始和结束时间。
    事件的注释内容。
  4. 编辑器的白色区域,输入该事件的实际内容。

  5. 单击,在弹出的窗口中,确认生成的 SQL 语句,然后单击

管理非表对象

您可以在 SQL 窗口中,对 MySQL 非表对象执行可视化的创建、编辑、重命名、复制、删除操作。

  1. 打开 SQL 窗口并进入目标数据源
  2. 右键单击目标库下的非表对象名称,选择对应的操作即可。