MySQL Shell 9.0  /  ...  /  註冊 SQL 處理器

10.4.1 註冊 SQL 處理器

您可以使用下列任一方式註冊 SQL 處理器

使用 MySQL Shell API 註冊 SQL 處理器

register_Sql_Handler 具有下列語法

    shell.register_sql_handler(name, description, prefixes, callback)
  • name:SQL 處理器的唯一識別碼。

  • description:處理器提供的 SQL 擴充功能的簡短描述。

  • prefixes:識別此處理器所處理之 SQL 陳述式的字首 (字串) 清單。您必須定義至少一個字首。

  • callback:在識別出符合字首的陳述式時要執行的函式名稱。

    函式必須具有下列簽章

    function(session, sql): [Result]

使用 Python 裝飾器註冊 SQL 處理器

您也可以使用 Python 裝飾器 @sql_handler 來註冊 SQL 處理器。此裝飾器會使用 shell.registerSqlHandler 來註冊處理器。參數的限制相同。

例如

        from mysqlsh.plugin_manager import sql_handler
        
        @sql_handler(prefixes=['SHOW '])
        "Prints a notice when a SHOW command is executed"
        def show_preprocessor(session, sql):
        
        print(f"SHOW COMMAND EXECUTED: {sql}")

列出已註冊的 SQL 處理器

若要列出已註冊的 SQL 處理器,請使用 shell.list_sql_handlers。此函式會傳回所有已註冊 SQL 處理器的名稱和描述。