Add Attribute Index (Data Management)
Summary
Adds an attribute index to an existing table, feature class, shapefile, coverage, or attributed relationship class.
Attribute indexes are used by ArcGIS to quickly locate records that match an attribute query. For information on attribute indexes in geodatabases, see Creating attribute indexes.
Usage
-
Shapefiles don't support multiple indexes, so additional fields will become part of a composite index (that is, an index created on multiple fields in a table).
-
ArcSDE and file or personal geodatabases have a new index added for each unique index name. If an index name already exists, it must be dropped before it can be updated.
-
The Fields To Index parameter's Add Field button is used only in ModelBuilder. In ModelBuilder, where the preceding tool has not been run, or its derived data does not exist, the Fields To Index parameter may not be populated with field names. The Add Field button allows you to add expected fields so you can complete the Add Attribute Index dialog box and continue to build your model.
Syntax
Parameter | Explanation | Data Type |
in_table |
The table containing the fields to be indexed. | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
fields |
The list of fields that will participate in the index. Any number of fields can be specified. | Field |
index_name (Optional) |
The name of the new index. An index name is necessary when adding an index to geodatabase feature classes and tables. For other types of input, the Index Name is ignored | String |
unique (Optional) |
Specifies whether the values in the index are unique.
| Boolean |
ascending (Optional) |
Specifies whether values are indexed in ascending order.
| Boolean |
Code Sample
The following stand-alone script demonstrates how to create an attribute index for specified fields.
# 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
The following code demonstrates how to use the AddIndex function in a Python interactive window.
import arcpy
arcpy.env.workspace = "C:/data/input/indices.gdb"
arcpy.AddIndex_management("lakes", "NAME;geocompID", "NGIndex", "UNIQUE", "ASCENDING")