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. Informationen zu den Datentypen und Geodatabase-Verhalten, die nicht mit SQL bearbeitet werden können, finden Sie unter Welcher Datentyp kann mit SQL bearbeitet werden?.
Alle Daten, die unter der Geodatabase registriert sind, verfügen über ein vom System verwaltetes, eindeutiges ObjectID-Feld (Zeilen-ID), das 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 ObjectID einen Einzelwert eingeben.
Diese Anleitung beschreibt die Aktualisierung der einzelnen Zeilen. In der Regel schreiben Sie eine Routine oder ein Client-Programm, um ObjectIDs 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) );