描述:
语法:
T.index(n)
备注:
为内表T的键创建索引长度为n的索引表,n为0或内表重置键时将清除索引表;n省略则自动选长度。如果需要多次根据键来查找数据,在建立了索引表之后可以提高效率。
建立索引时假定记录的主键唯一,否则出错。仅按基本键做HASH表,不同时间键的记录排进同一HASH位置。
参数:
T |
主键唯一的内表。 |
n |
索引长度。 |
选项:
@m |
并行建立。 |
@n |
可用序号键建立索引。 |
@s |
T的基本键是排号类型时建立成多层树状索引,忽略参数n。 |
返回值:
内表
示例:
为内表的键建立索引:
|
A |
|
1 |
=file("ei.ctx") |
|
2 |
=A1.create@y(#EID,NAME,DEPT) |
创建组表基表,EID为键。 |
3 |
=demo.cursor("select EID,NAME,DEPT from employee") |
|
4 |
=A2.append@i(A3) |
将A3游标中的数据追加到组表中。 |
5 |
=A4.memory() |
用组表的实表生成内表,内表继承实表的键。 |
6 |
=A5.index(10) |
为内表的键建立长度为10的索引。 |
为内表建立多层树状索引:
|
A |
|
1 |
=3.new(k(~:2):id,~*~:num) |
创建序表。 |
2 |
=A1.keys(id) |
设置序表的键为id。 |
3 |
=A2.memory() |
将序表转化为内表,继承序表的键: |
4 |
=A3.index@s() |
内表的键为排号类型,使用@s选项,为内表创建多层树状索引。 |
为内表建立序号索引
|
A |
|
1 |
=to(100).new(~*2:c1,rand():c2) |
创建序表: |
2 |
=A1.memory() |
用序表生成内表。 |
3 |
=A2.index@n() |
|
4 |
=A3.find(6) |
查询内表中键值为6的记录,即序号键的键值为6的记录,返回结果如下: |