文章
· 八月 1, 2021 阅读大约需 3 分钟

索引关键字Data,Extent,IdKey,Internal

第四十九章 索引关键字 - Data

指定其值将存储在此索引中的属性列表。

用法

要在索引, 中存储属性值,请使用以下语法:

Index name On property_expression_list [ Data = stored_property_list ];

其中,stored_property_list 是单个属性名称或括号中以逗号分隔的属性 , 列表。

详解

此关键字指定属性列表,其值将存储在此索引中。

不能将此关键字与位图索引一起使用。

默认

如果省略此关键字,属性值将不会存储在索引中。

示例

Index NameIDX On Name [ Data = Name ];

Index ZipIDX On ZipCode [ Data = (City,State) ];

第五十章 索引关键字 - Extent

定义范围索引。

用法

要指定这是范围索引,请使用以下语法:

Index State [ Extent ];

否则,省略此关键字或将单词Not放在关键字的前面。

注意:如果使用位图索引,则会自动维护一个范围索引,无需定义。

详解

extent index范围索引用于跟踪哪些对象实例属于某个子类。

默认

范围关键字的默认值为假。

第五十一章 索引关键字 - IdKey

指定此索引是否定义表的对象标识值。

用法

要指定该表的Object Identity值应该由索引所基于的一个或多个属性组成,请使用以下语法:

Index name On property_expression_list [ IdKey ];

否则,忽略此关键字或将单词Not紧接在关键字之前。

详解

该关键字指定将使用索引所基于的一个或多个属性来构成该对象的Object Identity值。

重要提示:IDKEY索引使用的任何属性的值中都不能有连续的一对竖线(||),除非该属性是对持久类实例的有效引用。
这种限制是由SQL机制的工作方式强加的。
IDKey属性中使用||会导致不可预知的行为。

对象标识值用于唯一地定位持久对象实例。
一旦保存了使用IdKey的对象,就不能修改组成IdKey的任何属性的值。

IdKey索引的行为也类似于惟一索引。
也就是说,对于在此索引中使用的属性(或属性组合), IRIS强制唯一性。
在这个索引定义中,允许将Unique关键字指定为true,但这是多余的。

默认

IdKey关键字的默认值是false

第五十二章 索引关键字 - Internal

指定此索引定义是否是内部的(不显示在类文档中)。

用法

要指定此索引定义是内部的,请使用以下语法:

Index name On property_expression_list [ Internal ];

否则,省略此关键字或将单词Not放在关键字的前面。

详解

内部类成员不会显示在类文档中。如果想让用户看到一个类,但不看到它的所有成员,这个关键字很有用。

默认

如果省略此关键字,此索引将显示在类文档中。

讨论 (0)1
登录或注册以继续