Вы можете использовать SQL для обновления, добавления и удаления данных в неверсионных таблицах базы геоданных, если они не участвуют в объектах поведения базы геоданных. Сведения о типах данных и поведении базы геоданных, которые нельзя редактировать с помощью SQL, доступны в разделе Какие типы данных могут редактироваться с помощью SQL?.
Все данные, которые были зарегистрированы в базе геоданных, имеют уникальное непустое управляемое системой поле ObjectID (Row ID). Вам необходимо предоставить уникальное значение для ObjectID, когда вы используете SQL для добавления записей в неверсионные таблицы в базе геоданных. Вы можете использовать функцию Next_Row_ID для вставки значения в поле ObjectID с помощью SQL.
Ниже приводится перечень действий, выполнение которых позволит вам обновить одну строку неверсионной таблицы и вставить ObjectID за один раз. Удобнее всего создать процедуру или пользовательскую программу, чтобы получить идентификаторы ObjectID и обновить ваши данные.
- Войдите в базу данных из редактора SQL, например, I-SQL.
Выполните вход как пользователь с правами доступа на редактирование данных.
- Выполните запрос к таблице table_registry, чтобы узнать регистрационный ID (registration ID) и владельца таблицы, в которую вы хотите добавить строку.
В этом примере получены значения столбцов registration_id и owner таблицы factories.
SELECT owner,registration_id,table_name FROM sde.table_registry WHERE table_name='factories'; owner registration_id table_name editor1 7 factories
- Войдите, чтобы выполнить функцию next_row_id и получить следующее доступное значение идентификатора строки.
- Выполните функцию next_row_id. Владельцем этой функции является пользователь sde.
В данном примере, editor1 является владельцем таблицы, а 7 – это регистрационный идентификатор (registration ID) таблицы factories.
EXECUTE FUNCTION "sde".next_row_id('editor1',7); ret_code 0 err_msg rowid 18 1 row(s) retrieved.
- Вернитесь в редактор SQL и добавьте запись в таблицу.
INSERT INTO factories VALUES ( 18, 'makem' ST_PolyFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))',4326) );
Если таблица содержит поле GUID или Global ID, необходимо также указать уникальное значение в этом поле. Подробнее см. раздел Вставка значения в поле Global ID в Informix с помощью SQL.