ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Редактирование неверсионных данных в базе геоданных в PostgreSQL с использованием SQL

Вы можете использовать SQL для обновления, добавления и удаления данных в неверсионных таблицах базы геоданных, если они не участвуют в объектах поведения базы геоданных. См. Какие типы данных можно редактировать, используя SQL? для информации о типах данных и поведении баз геоданных, которые нельзя редактировать с помощью SQL.

Примечание:

Если для неверсионной таблицы, предназначенной для редактирования с помощью SQL, включено архивирование, можно вместо самой таблицы редактировать ее архивное представление. Представление автоматически обновит конкретные поддерживаемые ArcGIS поля. См. раздел Что такое архивное представление и связанные с ним разделы для получения подробной информации.

Все данные, которые были зарегистрированы в базе геоданных, имеют уникальное непустое управляемое системой поле ObjectID (Row ID). Вам необходимо предоставить уникальное значение для ObjectID, когда вы используете SQL для добавления записей в неверсионные таблицы в базе геоданных. Включите функцию Next_RowID в выражение INSERT, чтобы заполнить поле ObjectID следующим доступным значением.

Примечание:

Следующее доступное значение ObjectID необязательно является следующим последовательным числом после последнего добавленного ObjectID. ObjectID для некоторых пользовательских приложений присваивается пакетно, поэтому следующий доступный ObjectID может быть намного больше, чем последний использованный идентификатор. Также, любые неиспользованные идентификаторы ObjectID из пакетов возвращаются в общее множество доступных значений, что означает, что следующее доступное значение ObjectID может на самом деле быть меньшим числом, чем последний добавленный вами идентификатор.

Ниже приводится перечень действий, выполнение которых позволит вам обновить одну строку неверсионной таблицы и вставить ObjectID за один раз. Удобнее всего создать процедуру или пользовательскую программу, чтобы получить идентификаторы ObjectID и обновить ваши данные.

  1. Войдите в базу данных из редактора SQL, например, psql.

    Выполните вход как пользователь с правами доступа на редактирование данных.

  2. Используйте функцию 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
     );
    
  3. Вы можете продолжить редактирование или, если вы закончили редактирование, внести изменения в базу данных (операция COMMIT).

Если таблица содержит поле GUID или Global ID, необходимо также указать уникальное значение в этом поле. Подробнее см. Next_GlobalID.

Связанные разделы

  • Next_RowID
  • RowID_Name
  • Что такое ObjectID?
  • Какие типы данных можно редактировать, используя SQL?

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация