CREATE ACCESS_METHOD 语句

使用 CREATE ACCESS_METHOD 语句在 sysams 系统目录表中注册新的主或辅助存取方法。

该语句是 SQL ANSI/ISO 标准的扩展。

语法

元素 描述 限制 语法
access method 此处为新的存取方法声明的名称 sysams 系统目录表的存取方法名称中必须是唯一的 标识符

用法

CREATE ACCESS_METHOD 语句将用户定义的存取方法添加到数据库。要创建存取方法,必须指定目的函数(或目的方法)、目的标志目的值作为存取方法的属性,并将关键字(基于 sysams 系统目录表中列名)与 UDR 相关联。您必须具有 DBA 或 Resource 权限才能创建存取方法。

有关设置目标选项的信息,包含所有函数关键字的列表,请参阅用途选项

PRIMARY 关键字为虚拟表指定用户定义的主存取方法。SECONDARY 关键字为虚拟索引指定创建用户定义的辅助存取方法。SECONDARY 关键字(和创建虚拟索引)在 Java™ Virtual-Table Interface 中不受支持。

以下语句创建了名为 T_tree 的辅助存取方法:
CREATE SECONDARY ACCESS_METHOD T_tree
(
am_getnext = ttree_getnext,

. . .
am_unique,
am_cluster,
am_sptype = 'S'
);

在前面的示例中,在目标选项列表中的 am_getnext 关键字与 ttree_getnext( ) UDR 关联作为满足查询而扫描下一项的方法的名称。该示例指示了 T_tree 辅助存取方法支持唯一键和集群,并驻留在 sbspace 中。

任何目标函数任务中与 CREATE ACCESS_METHOD 语句相关联的 UDR(例如,之前示例中 ttree_getnext( )am_getnext 的关联),必须已经由 CREATE FUNCTION 语句(或者具有等同功能的语句,例如:CREATE PROCEDURE FROM))在数据库中注册过。

以下语句创建驻留在外部空间的名为 am_tabprops 的主存取方法。
CREATE PRIMARY ACCESS_METHOD am_tabprops
(
am_open = FS_open,
am_close = FS_close,
am_beginscan = FS_beginScan,
am_create = FS_create,
am_scancost = FS_scanCost,
am_endscan = FS_endScan,
am_getnext = FS_getNext,
am_getbyid = FS_getById,
am_drop = FS_drop,
am_truncate = FS_truncate,
am_rowids,
am_sptype = 'x'
);

如果包含可选的 IF NOT EXISTS 关键字,且该指定名称的存取方法已将存在于当前数据库中,则数据库服务器不采取操作(而不是向此应用程序发送异常)。

1 请参阅 用途选项