GBase8s数据库CREATE INDEX 语句

[复制链接]
查看11 | 回复0 | 2021-11-11 16:34:00 | 显示全部楼层 |阅读模式
使用 CREATE INDEX 语句为表中的一列或多列,或者使用列作为参数的 UDR 返回的值创建索引。该语句是 SQL ANSI/ISO 标准的扩展。
用法当发出 CREATE INDEX 语句时,表在互斥方式下锁定。如果另一个过程正在使用表,CREATE INDEX 返回一个错误。(然而,关于异常,请参阅 CREATE INDEX 的 ONLINE 关键字。)如果索引在存储加密数据的列上,则数据库服务器不能使用该索引。如果包含了可选的 IF NOT EXISTS 关键字,当指定名称的索引已在当前数据库内的指定的表中定义时,则数据库服务器不采取任何操作(而不是向应用程序发送异常)。索引使用当 CREATE INDEX 执行时生效的对照。辅助存取方法(有时称为 索引存取方法)是一组构建、存取和操作索引结构(如 B-tree 、R-tree或 DataBlade 模块提供的索引结构)以加速数据检索的数据库服务器函数。synonym 或 table 都不可以参考虚拟表或 CREATE EXTERNAL TABLE 语句定义的表对象。您不能直接在内置函数中预定函数型索引,但是可以创建一个 SPL 包装器以调用并返回内置函数的值。此用户定义函数的参数定义了值不能是来自结合数据类型的列的函数型索引。以下统计信息由带或不带 ONLINE 关键字的 CREATE INDEX 语句自动生成:索引级别统计信息,等价于 B-tree 索引以 LOW 方式在 UPDATE STATISTICS 操作中生成的统计信息。列分布存储统计信息,等价于一般的 B-tree 索引的非透明主索引列以 HIGH 方式在UPDATE STATISTICS 操作中生成的分布存储。索引类型选项使用 CREATE INDEX 语句的 DISTINCT 或 UNIQUE 和 CLUSTER 选项指定索引的特征。索引类型选项DISTINCT 指定索引所基于的列仅接受唯一数据。UNIQUE 指定索引所基于的列仅接受唯一数据。CLUSTER 按索引指定的顺序对表的行重新排序。UNIQUE 或 DISTINCT 选项用法如果您未指定 UNIQUE 或 DISTINCT 关键字,则该索引在被索引的列或者被索引的列集上允许重复的值。带有唯一索引的列至多可有一个 NULL 值。您不能为 UNIQUE 索引键指定 R-tree 辅助存取方法。以下示例创建了一个唯一索引,防止 customer_num 列出现重复值:CREATE UNIQUE INDEX c_num_ix ON customer (customer_num);DISTINCT 和 UNIQUE 关键字是同义词,所以以下语句与前面的示例具有相同的作用:CREATE DISTINCT INDEX c_num_ix ON customer (customer_num);两个示例中的索引维持在升序中,这是缺省顺序。下一个示例在同一列上定义了一个名为c_num_desc_ix 的唯一降序索引:CREATE UNIQUE INDEX c_num_desc_ix ON customer (customer_num DESC);您也可以通过创建带有 CREATE TABLE 的唯一约束或 ALTER TABLE 语句 的 ADDCONSTRAINT 子句来阻止列或列组中的复制。在一个 NLSCASE INSENSITIVE 数据库中,NCHAR 和 NVARCHAR 数据类型列上的索引忽视字母大小写差异,以致于数据库服务器将由相同字母序列组成的不同大小写的字符串视为重复值。如果新行中列值与同一表中现有行同一列的值的不同之处仅在于大小写,则您不能向具有 NCHAR或 NVARCHAR 列并在其列定义了唯一约束或唯一索引的表中插入行或更改该表的行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行