使用 SQL 将值插入到 Informix 中的全局 ID 或 GUID 列中

全局 ID 和 GUID 数据类型可存储注册表样式的由大括号括起来的 36 个字符所组成的字符串。这些字符串用于唯一识别单个地理数据库中和跨多个地理数据库的要素或表行。全局 ID 用于保持单向和双向地理数据库复本中的记录的唯一性。GUID 可以添加到任何图层。

因此,如果要编辑的表参与复制或包含 GUID 列,在使用 SQL 将新记录插入到表中时必须将唯一值插入到全局 ID 或 GUID 列中。要执行此操作,请使用 sde.retrieve_guid() 函数。编辑非版本化表时,可将 ID 直接插入表中。编辑版本化表时,通过 SQL 使用 sde.retrieve_guid() 函数将值插入表的版本化视图中的 GUID 或全局 ID 列。

提示提示:

右键单击目录窗口中的数据集,然后单击添加全局 ID,可将全局 ID 添加到要素类。当使用 ArcGIS 进行编辑时,地理数据库会自动保留这些值。

步骤:
  1. 如果编辑的是使用 ArcGIS 10.1 或更高版本进行版本化的表,则版本化视图已经存在于该表的数据库中。视图名称将是带有后缀 _vw 的表名称。如果版本化视图不存在,可以通过 ArcGIS for Desktop 创建一个。有关说明,请参阅通过 ArcGIS for Desktop 创建版本化视图
  2. 以具有编辑此表权限的用户身份从 SQL 提示符处登录到数据库。

    如果通过版本化视图编辑,用户也必须有编辑视图的权限。

  3. 如果编辑的是版本化表,关于使用版本化视图进行编辑的说明,请参阅使用 SQL 编辑 Informix 中的版本化数据。如果要编辑非版本化表,请继续下一步骤。
  4. 插入记录时,请使用 retrieve_guid() 函数插入下一个全局 ID 值。
    INSERT INTO jason.asset_vw (asset_id,globalid) 
    VALUES (57,sde.retrieve_guid());
    
  5. 完成编辑后,请将编辑内容提交到数据库。
9/15/2013