Когда я вношу новые элементы (функции) в другой слой Postgres, я могу сделать это двумя способами:
- Рисование новых элементов (с «Добавить объект»), которые я делаю редко или
- Копирование (или вырезание) некоторых элементов из другого слоя Postgre (исходного слоя) и вставка его в целевой слой, что я часто делаю
В первом примере, сохранение правок работает нормально , так как этот слой получает GID из Postgre последовательности базы данных * NEXTVAL ( «layer_name_gid_seq» :: regclass) *
Во втором примере я получил ошибку при сохранении правок, потому что при копировании элемента из исходного слоя в целевой слой qgis скопировал gid элемента из исходного слоя. При попытке сохранить изменения возвращается эта ошибка:
Не удалось зафиксировать изменения в слое «Cjevovodi».
Ошибки: ОШИБКА: 1 функция (и) не добавлена.
Ошибки провайдера:
ошибка PostGIS при добавлении функций: ОШИБКА: двойное значение ключа нарушает уникальное ограничение "cjevovodi_okill_pkey" ПОДРОБНЕЕ
: Ключ (gid) = (5) уже существует.
Я попытался скопировать * nextval ('layer_name_gid_seq' :: regclass) * в поле gid, но эту последовательность нельзя вставить в поле gid, так как поле определено как числовое.
Кто-нибудь знает простой способ скопировать элементы из исходного слоя (с существующим GID) назначить новый GID?
Спасибо!