Вы можете использовать SQL для обновления, добавления и удаления данных в неверсионных таблицах базы геоданных, если они не участвуют в объектах поведения базы геоданных. Сведения о типах данных и поведении базы геоданных, которые нельзя редактировать с помощью SQL, доступны в разделе Какие типы данных могут редактироваться с помощью SQL?.
Все данные, которые были зарегистрированы в базе геоданных, имеют уникальное непустое управляемое системой поле ObjectID (Row ID). Вам необходимо предоставить уникальное значение для ObjectID, когда вы используете SQL для добавления записей в неверсионные таблицы в базе геоданных. Включите функцию Next_RowID в выражение INSERT, чтобы заполнить поле ObjectID следующим доступным значением.
Ниже приводится перечень действий, выполнение которых позволит вам обновить одну строку неверсионной таблицы и вставить ObjectID за один раз. Удобнее всего создать процедуру или пользовательскую программу, чтобы получить идентификаторы ObjectID и обновить ваши данные.
- Войдите в базу данных из редактора SQL, например, psql.
Выполните вход как пользователь с правами доступа на редактирование данных.
- Используйте функцию Next_RowID, чтобы заполнить поле ObjectID.
В данном примере столбец site_id является полем ObjectID; используется таблица, названная outbreak, которая хранится в схеме hmoot.
INSERT INTO hmoot.outbreak (site_id, med_code,num_affected, shape) VALUES ( sde.next_rowid('hmoot', 'outbreak'), 'v-22a', 3, ST_Point('point (12 36))', 4326 );
- Вы можете продолжить редактирование или, если вы закончили редактирование, внести изменения в базу данных (операция COMMIT).
Если таблица содержит поле GUID или Global ID, необходимо также указать уникальное значение в этом поле. Подробнее см. Next_GlobalID.