常见问题

常见问题解答:OBJECTID、FID 和 OID 字段的行为有何区别?

Last Published: November 20, 2020

答案

ArcGIS Desktop 产品要求独立表和属性表均具有 ObjectID 字段,该字段包含唯一的长整型用于标识每个记录。 此 ID 由 Esri 软件管理,无法手动对其进行更改。

Shapefile、地理数据库要素类和独立表将以不同的方式处理对 ObjectID 的需求。

  • 在 shapefile 中,“FID”字段包含 ObjectID,并且值从 0 开始。
  • 在地理数据库要素类或地理数据库内的独立表中,“OBJECTID”字段包含 ObjectID,并且值从 1 开始。
  • 在独立 dBase 表中,“OID”字段包含 ObjectID,并且值从 0 开始。

通过 ArcGIS Desktop 对数据进行编辑时,不同 ObjectID 字段的功能有所不同:

  • 如果删除 shapefile 中的记录,则将重新对 FID 进行编号,以使其从 0 开始并顺序增加。 编号中没有间隔。
  • 如果删除地理数据库要素类或地理数据库表中的记录,则不会对 OBJECTID 重新进行编号,并且列表中的间隔仍然存在。
  • 如果删除 dBase 表中的记录,则将从 0 开始对 OID 重新进行编号。 编号中没有间隔。

数据转换将导致 ObjectID 被重写。

  • 在导出地理数据库要素类或将其转换为 shapefile 格式,或者将地理数据库表导出为 dBase 格式时,将在输出 shapefile 或表中,从 0 开始按顺序对记录重新进行编号。
  • 在导出地理数据库要素类或将其转换为新的地理数据库要素类,或者导出地理数据库表或将其转换为新的地理数据库表时,将在输出要素类或表中,从 1 开始按顺序对记录重新进行编号。

在选择用于连接或关联表的字段时,请务必注意这些行为。 如果使用 FID 和 OBJECTID 字段将 shapefile 连接到要素类,则不会将 FID = 0 的 shapefile 记录与要素类中的记录进行匹配,因为要素类中不存在 OBJECTID = 0 的记录。

文章 ID:000010834

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

发现关于本主题的更多内容