添加字段 (数据管理)

摘要

向表或要素类表、要素图层以及带属性表的栅格添加新字段。

使用情况

    警告:

    此工具会修改输入数据。 有关详细信息以及避免数据被意外更改的策略,请参阅修改或更新输入数据的工具

  • 对于 shapefile 和 dBase 表,如果字段类型定义为字符型,则会为每条记录插入空白行。 如果字段类型定义为数值项,则会为每条记录插入零。

  • 字段长度参数仅适用于文本类型的字段。 如果未提供字段长度,则将使用长度 255。

  • 对于地理数据库,如果由字段类型定义字符或数字,则在选中字段支持空值参数的情况下会将 <null> 插入每条记录。

  • 无法将非空字段添加到非空地理数据库要素类或表。

  • shapefile 不支持字段别名,所以无法将字段别名添加到 shapefile。

  • 您可以使用地理数据库中要素类的现有属性域作为字段属性域参数值。 必须提供现有属性域的名称。 提供无效的属性域名称或值不会导致工具失败,但无效名称或值会被忽略且不会为字段设置属性域。

  • 字段的精度和比例表示可在字段中存储的数据的最大精度和大小。 精度表示可在字段中存储的数字数量,比例表示浮点和双精度字段的小数位数。 例如,对于值 54.234,小数位数为 3,精度为 5。

    注:

    文件地理数据库要素类或表不支持字段精度和小数位数。 如果提供精度或小数位数的值,则将忽略该值。

    对于其他数据库类型,请使用以下准则为给定的精度和小数位数选择正确的字段类型:

    • 在创建浮点型或双精度字段并指定精度和小数位数时,如果精度大于 6,则使用双精度;否则使用浮点型。
    • 对于小数位数为 0 的字段,请使用长整型或短整型字段类型。 在创建长整型字段时,请指定精度等于或小于 10,否则可能会创建双精度字段。

    了解有关数值字段类型的详细信息

  • 必填字段具有永久性,不能删除。 要在以后允许将其删除,请将字段设置为非必填字段(默认值)。

  • 栅格类型的字段允许将栅格影像包含为属性。 它存储在地理数据库中或与地理数据库一同存储。 当图像是描述要素的最佳途径时,这很有用。 无法为栅格类型的字段设置精度、比例和长度。

参数

标注说明数据类型
输入表

要添加指定字段的输入表。 字段将被添加到现有输入表,并且不会创建新的输出表。

可将字段添加到地理数据库中的要素类、shapefile、coverage、独立表、栅格目录、带属性表的栅格和图层。

Mosaic Layer; Raster Layer; Table View
字段名

将添加到输入表的字段的名称。

String
字段类型

指定新字段的字段类型。

  • 短整型(16 位整型)字段类型将为短整型。 短整形字段支持介于 -32,768 和 32,767 之间的整数。
  • 长整型(32 位整数)字段类型将为长整型。 长整型字段支持介于 2,147,483,648 和 2,147,483,647 之间的整数。
  • 大整数(64 位整数)此字段类型将为大整数。 大整数字段支持 -(253) 和 253 之间的整数。
  • 浮点型(32 位浮点型)字段类型将为浮点型。 浮点型字段支持介于 -3.4E38 和 1.2E38 之间的小数。
  • 双精度型(64 位浮点型)字段类型将为双精度型。 双精度字段支持介于 -2.2E308 和 1.8E308 之间的小数。
  • 文本字段类型将为文本型。 文本字段支持字符串。
  • 日期字段类型将为日期型。 日期字段支持日期和时间值。
  • 日期(高精度)日期字段类型将为高精度。 高精度日期字段支持毫秒时间的日期和时间值。
  • 仅日期此字段类型将仅为日期。 仅日期字段支持不带时间值的日期值。
  • 仅时间此字段类型将仅为时间。 仅时间字段支持不带日期值的时间值。
  • 时间戳偏移此字段类型将为时间戳偏移。 时间戳偏移字段支持日期、时间和相对于 UTC 值的偏移。
  • BLOB(二进制数据)此字段类型将为 BLOB。 BLOB 字段支持将数据存储为长度较长的一系列二进制数。 您需要一个自定义的加载器、查看器或第三方应用程序将这些项加载到 BLOB 字段中或者查看 BLOB 字段的内容。
  • GUID(全局唯一标识符)此字段类型将为 GUID。 GUID 字段可存储注册表样式的字符串,该字符串包含用大括号括起来的 36 个字符。
  • 栅格此字段类型将为栅格。 栅格字段格可在地理数据库中存储栅格数据或者将该数据与地理数据库一同存储。 可以存储 ArcGIS 软件支持的所有栅格数据集格式,但建议您仅使用小影像。
String
字段精度
(可选)

可存储在字段中的位数。 所有位都将被计算在内,而无论其处于小数点的哪一侧。

此参数仅支持数值字段类型。

如果输入表是文件地理数据库,则将忽略字段精度值。

Long
字段小数位数
(可选)

可存储在字段中的小数位数。

此参数仅适用于 float 或 double 类型的字段。

如果输入表是文件地理数据库,则将忽略字段小数位数值。

Long
字段长度
(可选)

字段长度。 它为字段的每条记录设置最大允许字符数。 如果未提供字段长度,则将使用长度 255。

此参数仅适用于文本类型的字段。

Long
字段别名
(可选)

字段的备用名称。 此名称用于描述含义隐晦的字段名称。 此参数仅适用于地理数据库。

String
字段支持空值
(可选)

指定该字段是否可包含空值。 空值不同于零或空字段,并且仅地理数据库中的字段支持空值。

  • 选中 - 字段可包含空值。 这是默认设置。
  • 未选中 - 字段不可包含空值。
Boolean
字段是必填字段
(可选)

指定要创建的字段是否是表的必填字段。 地理数据库中仅支持必填字段。

  • 选中 – 此字段是必填字段。 必填字段具有永久性,不能删除。
  • 取消选中 – 此字段不是必填字段。 这是默认设置。
Boolean
字段属性域
(可选)

约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。 您必须指定现有属性域的名称才能将其应用于字段。

String

派生输出

标注说明数据类型
更新的输入表

已更新的输入表。

Table

arcpy.management.AddField(in_table, field_name, field_type, {field_precision}, {field_scale}, {field_length}, {field_alias}, {field_is_nullable}, {field_is_required}, {field_domain})
名称说明数据类型
in_table

要添加指定字段的输入表。 字段将被添加到现有输入表,并且不会创建新的输出表。

可将字段添加到地理数据库中的要素类、shapefile、coverage、独立表、栅格目录、带属性表的栅格和图层。

Mosaic Layer; Raster Layer; Table View
field_name

将添加到输入表的字段的名称。

String
field_type

指定新字段的字段类型。

  • SHORT字段类型将为短整型。 短整形字段支持介于 -32,768 和 32,767 之间的整数。
  • LONG字段类型将为长整型。 长整型字段支持介于 2,147,483,648 和 2,147,483,647 之间的整数。
  • BIGINTEGER此字段类型将为大整数。 大整数字段支持 -(253) 和 253 之间的整数。
  • FLOAT字段类型将为浮点型。 浮点型字段支持介于 -3.4E38 和 1.2E38 之间的小数。
  • DOUBLE字段类型将为双精度型。 双精度字段支持介于 -2.2E308 和 1.8E308 之间的小数。
  • TEXT字段类型将为文本型。 文本字段支持字符串。
  • DATE字段类型将为日期型。 日期字段支持日期和时间值。
  • DATEHIGHPRECISION日期字段类型将为高精度。 高精度日期字段支持毫秒时间的日期和时间值。
  • DATEONLY此字段类型将仅为日期。 仅日期字段支持不带时间值的日期值。
  • TIMEONLY此字段类型将仅为时间。 仅时间字段支持不带日期值的时间值。
  • TIMESTAMPOFFSET此字段类型将为时间戳偏移。 时间戳偏移字段支持日期、时间和相对于 UTC 值的偏移。
  • BLOB此字段类型将为 BLOB。 BLOB 字段支持将数据存储为长度较长的一系列二进制数。 您需要一个自定义的加载器、查看器或第三方应用程序将这些项加载到 BLOB 字段中或者查看 BLOB 字段的内容。
  • GUID此字段类型将为 GUID。 GUID 字段可存储注册表样式的字符串,该字符串包含用大括号括起来的 36 个字符。
  • RASTER此字段类型将为栅格。 栅格字段格可在地理数据库中存储栅格数据或者将该数据与地理数据库一同存储。 可以存储 ArcGIS 软件支持的所有栅格数据集格式,但建议您仅使用小影像。

尽管 Field 对象的 type 属性值与添加字段工具的 field_type 参数所使用的关键字不完全匹配,但是所有 Field 对象的 type 值均可用作此参数的输入。 不同的字段类型映射如下:IntegerLONGStringTEXT,以及 SmallIntegerSHORT

String
field_precision
(可选)

可存储在字段中的位数。 所有位都将被计算在内,而无论其处于小数点的哪一侧。

此参数仅支持数值字段类型。

如果输入表是文件地理数据库,则将忽略字段精度值。

Long
field_scale
(可选)

可存储在字段中的小数位数。

此参数仅适用于 float 或 double 类型的字段。

如果输入表是文件地理数据库,则将忽略字段小数位数值。

Long
field_length
(可选)

字段长度。 它为字段的每条记录设置最大允许字符数。 如果未提供字段长度,则将使用长度 255。

此参数仅适用于文本类型的字段。

Long
field_alias
(可选)

字段的备用名称。 此名称用于描述含义隐晦的字段名称。 此参数仅适用于地理数据库。

String
field_is_nullable
(可选)

指定该字段是否可包含空值。 空值不同于零或空字段,并且仅地理数据库中的字段支持空值。

  • NULLABLE字段可包含空值。 这是默认设置。
  • NON_NULLABLE字段不可包含空值。
Boolean
field_is_required
(可选)

指定要创建的字段是否是表的必填字段。 地理数据库中仅支持必填字段。

  • NON_REQUIRED字段不是必填字段。 这是默认设置。
  • REQUIRED此字段是必填字段。 必填字段具有永久性,不能删除。
Boolean
field_domain
(可选)

约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。 您必须指定现有属性域的名称才能将其应用于字段。

String

派生输出

名称说明数据类型
out_table

已更新的输入表。

Table

代码示例

AddField 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 AddField 函数。

import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.management.AddField("schools", "ref_ID", "LONG", 9, "", "", "refcode", 
                          "NULLABLE", "REQUIRED")
AddField 示例 2(独立脚本)

以下独立脚本演示了如何使用 AddField 函数。

# Name: AddField_Example2.py
# Description: Add a pair of new fields to a table
 
# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
 
# Set local variables
inFeatures = "schools"
fieldName1 = "ref_ID"
fieldPrecision = 9
fieldAlias = "refcode"
fieldName2 = "status"
fieldLength = 10

# Run AddField twice for two new fields
arcpy.management.AddField(inFeatures, fieldName1, "LONG", fieldPrecision,
                          field_alias=fieldAlias, field_is_nullable="NULLABLE")

arcpy.management.AddField(inFeatures, fieldName2, "TEXT", 
                          field_length=fieldLength)

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题