Bearbeiten nicht versionierter Geodatabase-Daten in Informix per SQL
Mithilfe von SQL können Sie Daten in der Geodatabase aktualisieren, Daten in die Geodatabase einfügen und Daten aus nicht versionierten Tabellen daraus löschen, falls diese nicht an Geodatabase-Verhalten beteiligt sind. Unter Welcher Datentyp kann mit SQL bearbeitet werden? finden Sie Informationen zu den Typen von Daten und Geodatabase-Verhalten, die Sie nicht per SQL bearbeiten können.
Alle Daten, die unter der Geodatabase registriert sind, verfügen über eine vom System verwaltete, eindeutige Objekt-ID-Spalte (Zeilen-ID), die nicht null ist. Wenn Sie SQL zum Einfügen von Datensätzen in nicht versionierte Tabellen in der Geodatabase verwenden, müssen Sie für die Objekt-ID einen Einzelwert eingeben.
Diese Anleitung beschreibt die Aktualisierung der einzelnen Zeilen. In der Regel schreiben Sie eine Routine oder ein Client-Programm, um Objekt-IDs abzurufen und die Daten zu aktualisieren.
-
Melden Sie sich über einen SQL-Editor wie I-SQL an der Datenbank an.
Melden Sie sich bei der Datenbank als Benutzer an, der über die Berechtigung zum Bearbeiten der Daten verfügt.
-
Fragen Sie die Tabelle "table_registry" nach der Registrierungs-ID und dem Besitzer der Tabelle ab, in die Sie eine Zeile einfügen möchten.
In diesem Beispiel werden die Registrierungs-ID und der Besitzername für die Tabelle "factories" zurückgegeben.
SELECT owner,registration_id,table_name FROM sde.table_registry WHERE table_name='factories'; owner registration_id table_name editor1 7 factories
- Melden Sie sich an, um die Funktion "next_row_id" auszuführen und den nächsten verfügbaren Zeilen-ID-Wert abzurufen.
-
Führen Sie die Funktion "next_row_id" aus. Der Benutzer "sde" ist der Besitzer dieser Funktion.
In diesem Beispiel ist "editor1" der Besitzer der Tabelle, und "7" ist die Registrierungs-ID der Tabelle "factories".
EXECUTE FUNCTION "sde".next_row_id('editor1',7); ret_code 0 err_msg rowid 18 1 row(s) retrieved.
-
Wechseln Sie zurück zum SQL-Editor, und fügen Sie einen Datensatz in die Tabelle ein.
INSERT INTO factories VALUES ( 18, 'makem' ST_PolyFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))',101) );