Kiedy wprowadzam nowe elementy (funkcje) w innej warstwie Postgres, mogę to zrobić na dwa sposoby:
- Rysowanie nowych elementów (za pomocą funkcji „Dodaj funkcję”), które robię rzadko lub
- Kopiowanie (lub wycinanie) niektórych elementów z innej warstwy Postgre (warstwa źródłowa) i wklejanie do warstwy docelowej, co często robię
W pierwszym przykładzie zapisywanie zmian działa normalnie, ponieważ warstwa ta dostaje gid z sekwencji bazy danych postgre * nextval ('nazwa_warstwy_gid_seq' :: regclass) *
W drugim przykładzie wystąpił błąd podczas zapisywania edycji, ponieważ podczas kopiowania elementu z warstwy źródłowej na warstwę docelową qgis skopiował gid elementu z warstwy źródłowej. Podczas próby zapisania zmian zwracany jest ten błąd:
Nie można zatwierdzić zmian w warstwie „Cjevovodi”
Błędy: BŁĄD: nie dodano 1 funkcji.
Błędy dostawcy:
błąd PostGIS podczas dodawania funkcji: BŁĄD: zduplikowana wartość klucza narusza unikalne ograniczenie „cjevovodi_okill_pkey”
SZCZEGÓŁY: Klucz (gid) = (5) już istnieje.
Próbowałem skopiować * nextval ('layer_name_gid_seq' :: regclass) * w polu gid, ale tej sekwencji nie można wkleić w polu gid, ponieważ pole jest zdefiniowane jako numeryczne.
Czy ktoś zna prosty sposób kopiowania elementów z warstwy źródłowej (z istniejącym gid) przypisuje nowy gid?
Dzięki!