==================== CREATE ACCESS METHOD ==================== .. container:: refentry :name: SQL-CREATE-ACCESS-METHOD .. container:: titlepage .. container:: refnamediv .. rubric:: CREATE ACCESS METHOD :name: create-access-method CREATE ACCESS METHOD — 定义一种新的访问方法 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis CREATE ACCESS METHOD name TYPE access_method_type HANDLER handler_function .. container:: refsect1 :name: id-1.9.3.56.5 .. rubric:: 简介 :name: 简介 ``CREATE ACCESS METHOD``\ 创建一种新的访问方法。 访问方法名称在数据库中必须唯一。 只有超级用户可以定义新的访问方法。 .. container:: refsect1 :name: id-1.9.3.56.6 .. rubric:: 参数 :name: 参数 .. container:: variablelist *``name``* 要创建的访问方法的名称。 *``access_method_type``* 这个子句指定要定义的访问方法的类型。当前只支持\ ``TABLE``\ 和\ ``INDEX``\ 。 *``handler_function``* *``handler_function``*\ 是一个之前已注册的函数的名称(可能被模式限定),该函数表示要创建的访问方法。处理器函数必须被声明为接收一个单一的\ ``internal``\ 类型的参数,并且它的返回类型取决于访问方法的类型; 对于\ ``TABLE``\ 访问方法,它必须是\ ``table_am_handler``\ ,而对于\ ``INDEX``\ 访问方法,它必须是\ ``index_am_handler``\ 。 处理器函数必须实现的 C 级别 API 取决于访问方法的类型。 .. container:: refsect1 :name: id-1.9.3.56.7 .. rubric:: 示例 :name: 示例 用处理器函数\ ``heptree_handler``\ 创建一种索引访问方法\ ``heptree``\ : .. code:: programlisting CREATE ACCESS METHOD heptree TYPE INDEX HANDLER heptree_handler; .. container:: refsect1 :name: id-1.9.3.56.8 .. rubric:: 兼容性 :name: 兼容性 ``CREATE ACCESS METHOD``\ 是一种PostgreSQL扩展。 .. container:: refsect1 :name: id-1.9.3.56.9 .. rubric:: 另见 :name: 另见 `DROP ACCESS METHOD `__, `CREATE OPERATOR CLASS `__, `CREATE OPERATOR FAMILY `__