Knowledge Base - Technical Articles


Technical Article   FAQ:  What are the differences in the behavior of the OBJECTID, FID, and OID fields?

Article ID: 37480
Software:  ArcGIS - ArcEditor 9.0, 9.1, 9.2, 9.3, 9.3.1, 10 ArcGIS - ArcInfo 9.0, 9.1, 9.2, 9.3, 9.3.1, 10 ArcGIS - ArcView 9.0, 9.1, 9.2, 9.3, 9.3.1, 10
Platforms:  Windows 2000, XP, 2003Server, Vista, Win 7

Question

What are the differences in the behavior of the OBJECTID, FID, and OID fields?

Answer

ArcGIS Desktop products require that both standalone and attribute tables have an ObjectID field, which contains a unique, long integer to identify each record. This ID is managed by ESRI software cannot be changed manually.

Shapefiles, geodatabase feature classes, and standalone tables handle the need for an ObjectID differently.

---In a shapefile, the 'FID' field contains the ObjectID, and the values start at zero.

---In a geodatabase feature class or standalone table within a geodatabase, the 'OBJECTID' field contains the ObjectID, and the values start at one.

---In a standalone dBase table, the 'OID' field contains the ObjectID, and the values start at zero.

The different ObjectID fields function differently when the data is edited through ArcGIS Desktop:

---If a record from a shapefile is deleted, the FIDs are renumbered so that they start from 0 and increase sequentially. There is no gap in numbering.

---If a record is deleted from a geodatabase feature class or geodatabase table, the OBJECTIDs are not renumbered, and the gap in the list remains.

---If a record is deleted from a dBase table, the OIDs are renumbered starting from 0. There is no gap in numbering.

Data conversion causes the ObjectID to be rewritten.

---When a geodatabase feature class is exported or converted to shapefile format, or when a geodatabase table is exported to dBase format, the records are renumbered sequentially starting at 0 in the output shapefile or table.

---When a geodatabase feature class is exported or converted to a new geodatabase feature class, or when a geodatabase table is exported or converted to a new geodatabase table, the records are renumbered sequentially starting at 1 in the output feature class or table.

It is important to be aware of these behaviors when selecting fields for joining or relating tables. If a shapefile were to be joined to a feature class using the FID and OBJECTID fields, the shapefile record with FID = 0 would not be matched to a record in the feature class, as there is no record in a feature class with OBJECTID = 0.

Related Information


Created: 12/29/2009
Last Modified: 6/29/2010

If you would like to post a comment, please login