Bearbeiten von versionierten Daten in PostgreSQL mit Multiversioned Views und SQL

Sie können versionierte Daten in einer Geodatabase bearbeiten, indem Sie eine für die Daten erstellte Multiversioned View editieren.

Zusammen mit ArcSDE werden verschiedene Funktionen installiert, die Sie beim Arbeiten mit Multiversioned Views unterstützen. Diese Funktionen und ihre Beschreibungen sind im Folgenden aufgeführt:

Funktion

Zweck

Syntax und Beschreibung

sde.sde_create_version

Erstellen Sie eine neue Geodatabase-Version.

Bearbeiten Sie stets Ihre eigene, separate Version; mehrere Editoren können nicht dieselbe Version mit Multiversioned Views bearbeiten.

SELECT sde.sde_create_version ('<parent_name>', '<version_name>', <rule_code>, <access_code>, '<description>')

"<parent_version>" die Version ist, aus der Ihre Version erstellt wird.

"<child_version>" der Name der von Ihnen erstellten Version ist.

"<name_rule>" gibt an, ob der für die Version angegebene Name entsprechend der Vorgabe übernommen werden soll (2) oder ob ein eindeutiger Name erstellt werden soll, falls ein Name doppelt angegeben wird (1).

"<access>" die Berechtigungsstufe der Version ist; 0 = Privat, 1 = Öffentlich, 2 = Geschützt.

"<description>" eine Textbeschreibung der Child-Version ist.

sde.sde_set_current_version

Legt fest, auf welche Geodatabase-Version Sie zugreifen.

SELECT sde.sde_set_current_version('<version_name>');

"<version_name>" ist der Name der Geodatabase-Version, zu der Sie eine Verbindung herstellen möchten.

sde.sde_edit_version

Startet und beendet eine Editiersitzung.

SELECT sde.sde_edit_version('<version_name>',<1 or 2>)

Geben Sie 1 an, um die Editiersitzung zu starten. Geben Sie 2 an, um sie zu beenden.

sde.sde_delete_version

Löscht eine Geodatabase-Version.

SELECT sde.sde_delete_version('<version_name>');

Wenn Sie versionierte Tabellen in Multiversioned Views bearbeiten, werden Änderungen an den Delta-Tabellen vorgenommen, und Zeilen-ID-Werte (Objekt-ID) für neue Datensätze werden automatisch generiert. Anders als beim Bearbeiten von versionierten Daten in einer ArcGIS-Editiersitzung wird jedoch kein interner Versionsabgleich mit diesen Änderungen vorgenommen.

Zudem wird auf den von der Version beim Starten einer Editiersitzung für eine Multiversioned View referenzierten Status eine exklusive Sperre angewendet. Daher wird dringend davon abgeraten, dass Multiversioned Views zum Bearbeiten der DEFAULT-Version oder einer anderen Version verwendet werden, die gleichzeitig von anderen Benutzern bearbeitet oder abgeglichen werden kann, da Konflikte nicht erkannt werden können und andere Benutzer durch Sperren blockiert werden. Erstellen Sie stattdessen eine eigene Version, die eigens für Ihre Editiersitzung in Multiversioned Views vorgesehen ist.

VorsichtVorsicht:
  • Vorgänge zur Versionsverwaltung, wie das Abgleichen, Lösen von Konflikten und Bereitstellen, müssen mit der ArcGIS-Software durchgeführt werden. Bei nicht ordnungsgemäßem Versions-Management können bei der Arbeit mit Sichten Schäden an der Geodatabase auftreten.
  • Verwenden Sie niemals die DBMS-Werkzeuge (Datenbankmanagementsystem), um Zeilen-ID-Felder (Objekt-ID) zu aktualisieren, die von ArcSDE in der Datenbank verwaltet werden. Diese Objekt-ID-Felder werden von der Geodatabase zugewiesen und verwaltet und dürfen daher per SQL nicht geändert werden.
  • Nehmen Sie niemals Änderungen an der DEFAULT-Version der Geodatabase mit SQL vor. Beim Starten einer Editiersitzung auf einer Version wird eine exklusive Sperre auf den Status angewendet, den die Version referenziert. Wenn Sie die DEFAULT-Version sperren, verhindern Sie, dass ArcGIS-Benutzer eine Verbindung zur Geodatabase herstellen.

In den folgenden Schritten werden Sie durch das Erstellen einer Multiversioned View, Erstellen einer Version für die Bearbeitung, Festlegen der zu bearbeitenden Version, Starten einer Editiersitzung, Durchführen einiger Änderungen über die Multiversioned View, Beenden der Editiersitzung, Übernehmen der Änderungen in der Datenbank und Löschen der Version geführt, die zur Bearbeitung erstellt wurde. In den Beispielen ist die erstellte Multiversioned View zum Durchführen der Änderungen in der Tabelle "code_mv", die für die Bearbeitung erstellte und verwendete Version hingegen "mvedits".

TippTipp:

Denken Sie daran, dass das in einer Multiversioned View bearbeitete Dataset bereits als versioniert registriert sein muss.

Schritte:
  1. Führen Sie an einer MS-DOS- (Windows) oder Shell-Befehlseingabeaufforderung (Linux) das Dienstprogramm "sdetable" aus, um eine Multiversioned View zu erstellen.
    sdetable –o create_mv_view –T code_mv –t code_enf 
    –i sde:postgresql:myserver –D code –u sarja –p not4U
  2. Melden Sie sich über "psql" bei der Datenbank an, und erstellen Sie eine neue Version, in der Sie die Bearbeitungen vornehmen.
    SELECT sde.sde_create_version
    ('sde.DEFAULT', 'mvedits', 2, 1, 'version for edits');
  3. Text enclosed in single quotes is read literally. Therefore, the text you type inside the quote marks must match the case of the text (all upper case, all lower case, or mixed case) as it is stored in the database.

  4. Legen Sie die Version für die Editiersitzung auf die soeben erstellte Child-Version fest.
    SELECT sde.sde_set_current_version('mvedits');
  5. Starten Sie eine Editiersitzung, indem Sie die Funktion "sde_edit_version" ausführen und 1 angeben.

    "1" bedeutet, dass eine Editiersitzung gestartet wird.

    SELECT sde.sde_edit_version('mvedits',1);
  6. Nehmen Sie die erste Änderung über die Multiversioned View mithilfe von SQL vor.

    In diesem Beispiel wird ein bestehender Datensatz aktualisiert.

    UPDATE code_mv 
    SET propowner = 'C. Industry' 
    WHERE vid = 2233
  7. Nachdem Sie alle Änderungen für diese Sitzung vorgenommen haben, stoppen Sie die Editiersitzung, indem Sie die Funktion "sde_edit_version" ausführen. Geben Sie jetzt jedoch den Wert 2 an.

    "2" bedeutet, dass eine Editiersitzung beendet wird.

    SELECT sde.sde_edit_version('mvedits',2);
  8. Führen Sie nach Beendigung aller Editierschritte einen Abgleich durch, und schreiben Sie die Änderungen über ArcGIS Desktop zurück. Anschließend können Sie die in Schritt 2 erstellte Geodatabase-Version löschen. Falls Sie die Änderungen nicht benötigen, können Sie die in Schritt 2 erstellte Version löschen, ohne die Änderungen abzugleichen und zurückzuschreiben.
    SELECT sde.sde_delete_version('mvedits');

Verwandte Themen


3/6/2012