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

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

如果要编辑的表参与复制或离线地图或者包含 GUID 列,在使用 SQL 将新记录插入到表中时必须将唯一值插入到全局 ID 或 GUID 列中。要执行此操作,请使用 sde.next_globalid 函数。

编辑不可用于存档的非版本化表时,使用该函数将 ID 直接插入表中。编辑可用于存档的非版本化表时,使用该函数将 ID 插入表的存档视图。编辑版本化表时,使用该函数将值插入表的版本化视图。

步骤:
  1. 以具有编辑此表权限的用户身份从 SQL 提示符处登录到数据库。

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

  2. 插入记录时,使用 sde.next_globalid 函数插入下一个全局 ID 值。因为这是一个地理数据库表,所以它还包含 ObjectID。同样,使用 sde.next_rowid 函数将值插入 ObjectID 字段。
    --Get next ObjectID
    CALL sde.next_rowid('JASON', 'ASSETS', ?, ?, ?);
    
    Value of output parameters
    
    Parameter Name :   O_ROWID
    Parameter Value :  49999
    
    Parameter Name :   O_MSGCODE
    Parameter Value :  0
    
    Parameter Name :   O_MESSAGE
    Parameter Value :  Procedure successfully completed.
    
    Return Status = 1
    
    --Insert record
    INSERT INTO jason.assets (objectid, asset_id, globalid) 
     VALUES (49999, 57, sde.next_globalid);
    
  3. 完成编辑后,请将编辑内容提交到数据库。

相关主题

5/25/2014