添加属性索引 (数据管理)
摘要
将属性索引添加到现有的表、要素类、shapefile、coverage 或属性关系类。
ArcGIS 可使用属性索引快速查找与属性查询相匹配的记录。有关地理数据库中的属性索引的信息,请参阅创建属性索引。
用法
-
只有来自文件地理数据库、个人地理数据库或 ArcSDE 数据库的要素类支持多个属性索引。索引名称参数仅可用于与这两类输入以及 Unique | Non_unique or Ascending | Non_ascending 配合使用
-
Shapefile 不支持多个索引,因此附加字段将成为复合索引的一部分(即,对表中的多个字段创建的索引)。
-
尽管在文件地理数据库中尚未实现多列索引,但此工具可用于为文件地理数据库指定多列索引。如果创建此类索引,则在要素类或表的属性 对话框中进行查看时,它会显示为多列索引,但它实际上是每个字段的独立索引。
-
对于每个唯一索引名称,ArcSDE 和文件或个人地理数据库都添加了一个新索引。如果某个索引名称已经存在,则必须先将其删除,然后才能对其进行更新。
-
必须对项进行索引才能依靠外部 DBMS 表以支持本机模式重新选择。
-
要建立索引的字段参数的“添加字段”按钮只能在模型构建器中使用。在模型构建器中,如果先前的工具尚未运行或其派生数据不存在,则可能不会使用字段名称来填充要建立索引的字段参数。“添加字段”按钮可用于添加所需字段,以完成“添加属性索引”对话框并继续构建模型。
语法
参数 | 说明 | 数据类型 |
in_table |
包含要建立索引的字段的表。 | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
fields |
要加入到索引中的字段的列表。可指定任意数量的字段。 | Field |
index_name (可选) |
新索引的名称。向地理数据库要素类和表添加索引时,必须指定索引名称。对于 shapefile 和 coverage 要素类等其他数据类型,不能指定索引名称。 | String |
unique (可选) |
指定索引中的值是否唯一。
| Boolean |
ascending (可选) |
指定是否按升序建立索引。
| Boolean |
代码示例
以下独立脚本演示了如何创建指定字段的属性索引。
# Name: AddAttIndex.py # Description: Create an attribute Index for specified fields # Import system modules import arcpy # Set a default workspace arcpy.env.workspace = "c:/data" try: # Create an attribute index for the few fields listed in command. arcpy.AddIndex_management ("counties.shp", "NAME;STATE_FIPS;CNTY_FIPS", "#", "NON_UNIQUE", "NON_ASCENDING") arcpy.AddIndex_management ("mexico.mdb/land/lakes", "NAME;geocompID", "NGIndex", "UNIQUE", "ASCENDING") except Exception, e: # If an error occurred, print line number and error message import traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.message
以下代码演示了如何在 Python 交互式窗口中使用 AddIndex 函数。
import arcpy arcpy.env.workspace = "C:/data/input/indices.gdb" arcpy.AddIndex_management("lakes", "NAME;geocompID", "NGIndex", "UNIQUE", "ASCENDING")