MySQL Shell 8.4  /  ...  /  创建用户定义的 MySQL Shell 全局对象

10.2.1 创建用户定义的 MySQL Shell 全局对象

要创建一个新的 MySQL Shell 全局对象作为扩展对象的入口点,首先使用内置的 shell.createExtensionObject() 函数(在 JavaScript 中)或 shell.create_extension_object() 函数(在 Python 中)创建一个新的顶级扩展对象。

shell.createExtensionObject()

然后通过调用 shell.registerGlobal() 方法(在 JavaScript 中)或 shell.register_global() 方法(在 Python 中)将此顶级扩展对象注册为 MySQL Shell 全局对象。该方法的语法如下:

shell.registerGlobal(name, object[, definition])

其中

  • name 是一个字符串,表示全局对象的名称(和类)。该名称必须是有效的脚本标识符,因此第一个字符必须是字母或下划线字符,后面可以跟着任意数量的字母、数字或下划线字符。该名称在 MySQL Shell 安装中必须是唯一的,因此它不能是内置 MySQL Shell 全局对象的名称(例如 dbdbaclustersessionshellutil),也不能是你已经用于用户定义的 MySQL Shell 全局对象的名称。下面的示例展示了如何在注册全局对象之前检查名称是否存在。

    重要提示

    在 JavaScript 和 Python 模式下,你用于注册全局对象的名称会原样使用,用于访问该对象。因此,最好为全局对象使用一个简单的单字名称(例如 ext)。如果你使用驼峰式或蛇形命名法注册了全局对象(例如 myCustomObject),那么在使用全局对象时,必须按照注册时的名称指定它。只有用于成员的名称以语言适当的方式处理。

  • object 是你注册为 MySQL Shell 全局对象的扩展对象。你只能注册一次扩展对象。

  • definition 是一个可选字典,其中包含在 MySQL Shell 帮助系统中提供的全局对象的帮助信息。该字典包含以下键:

    • brief(字符串,可选):一个简短的全局对象描述,将作为帮助信息提供。

    • details(字符串列表,可选):一个详细的全局对象描述,将作为帮助信息提供。