Добавление значения в столбец global ID или GUID в DB2 с использованием SQL

Типы данных global ID и GUID содержат реестр строк стилей (registry style strings), состоящий из 36 символов, заключенных в круглые скобки. Эти строки уникально определяют объект или запись таблицы внутри и вне базы геоданных. Global ID используются для поддержки уникальности записей в односторонней или двусторонней репликах базы геоданных и неверсионных данных, использующихся в автономных картах. Идентификаторы GUID могут добавляться к любой таблице.

Однако если таблица, которую вы хотите отредактировать, участвует в репликации или автономных картах либо содержит столбец GUID, то вам необходимо вставить уникальное значение в столбец global ID или GUID, когда вы добавляете новую запись в таблицу, используя SQL. Для этого воспользуйтесь функцией sde.next_globalid.

При редактировании неверсионной таблицы, не включенной для архивирования, используйте функцию для непосредственной вставки ID в таблицу. При редактировании неверсионной таблицы, не включенной для архивирования, используйте функцию для непосредственной вставки ID в архивное представление таблицы. При редактировании версионной таблицы используйте функцию для вставки значения в версионное представление таблицы.

Шаги:
  1. Войдите в базу данных из командной строки SQL как пользователь с правами на редактирование таблицы.

    Если вы редактируете через версионное или архивное представление, у пользователя должны быть права редактирования данных.

  2. При добавлении записи используйте функцию sde.next_globalid, чтобы вставить следующее значение global 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