指定此索引是否定义表的主键。
要指定该表的主键由该索引所基于的属性构成,请使用以下语法:
Index name On property_expression_list [ PrimaryKey ];
否则,省略此关键字或将单词Not
放在关键字的前面。
此关键字指定应通过SQL将此索引报告为此类(表)的主键。
PrimaryKey
索引的行为也类似于唯一索引。
也就是说,对于在此索引中使用的属性(或属性组合),InterSystems IRIS强制唯一性。
在这个索引定义中,允许将Unique
关键字指定为true
,但这是多余的。
Index EmpIDX On EmployeeID [ PrimaryKey] ;
如果忽略此关键字,则该表的主键不是由索引所基于的属性构成的。
指定这个类的分片键。
在分片类完全实现之前,InterSystems建议从SQL
创建分片表,而不是从对象端。
但是,如果你查看一个通过创建一个分片表生成的类,你可能会看到如下代码:
/// ShardKey分片表索引,由DDL CREATE table语句自动生成
Index ShardKey On DeptNum [ Abstract, CoshardWith = User.Department, ShardKey, SqlName = %ShardKey ];
在本例中,DeptNum
属性是当前类的分片键。
指定索引的SQL别名。
当通过SQL
引用该索引时,要覆盖该索引的默认名称,使用以下语法:
Index name On property_expression_list [ SqlName = sqlindexname];
其中sqlindexname
是一个SQL
标识符。
当通过SQL
引用该关键字时,可以为该索引定义一个替代名称。
如果忽略此关键字,则索引的SQL名称为索引定义中给定的indexname
。
指定索引的类型。
要指定索引的类型,请使用以下语法:
Index name On property_expression_list [ Type = indextype ];
其中indextype
是下列类型之一:
bitmap
— 位图索引
bitslice
— 位片索引
index
—标准索引(默认)
key
— 废弃此关键字指定索引的类型,具体是将索引实现为位图索引还是标准(常规、非位图)索引。
位图索引不能标记为唯一unique
。
如果省略此关键字,则索引为标准索引。
索引关键字PrimaryKey,ShardKey,SqlName,Type
原文:https://blog.51cto.com/u_12956943/3251635