使用 CREATE ACCESS_METHOD 语句在 sysams 系统目录表中注册新的主或辅
助存取方法。
该语句是 SQL ANSI/ISO 标准的扩展。
语法
元素
描述
限制
语法
access
method
此处为新的存取方
法声明的名称
在 sysams 系统目录表的存取方
法名称中必须是唯一的
标识符
GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 205
用法
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,
GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 206
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 关键字,且该指定名称的存取方法已将存在于
当前数据库中,则数据库服务器不采取操作(而不是向此应用程序发送异常)。