MySQL Shell 9.0  /  ...  /  建立使用者定義的 MySQL Shell 全域物件

10.2.1 建立使用者定義的 MySQL Shell 全域物件

若要建立新的 MySQL Shell 全域物件以作為擴充物件的進入點,請先在 JavaScript 中使用內建的 shell.createExtensionObject() 函式,或是在 Python 中使用 shell.create_extension_object() 函式,建立新的最上層擴充物件。

shell.createExtensionObject()

然後,在 JavaScript 中呼叫 shell.registerGlobal() 方法,或是在 Python 中呼叫 shell.register_global() 方法,將這個最上層擴充物件註冊為 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 (字串清單,選用):提供為說明資訊的全域物件詳細描述。