Einfügen eines Features in eine Relation
Beschreibung
Fügt einen oder mehrere Datensätze in eine Relation ein. Der Textkörper der Anforderung enthält die JSON-Darstellung der Feature-Sammlung, auch wenn bestimmte Elemente nicht angegeben werden müssen. Jedes dieser Features enthält null oder mehr Spaltenwerte. Wenn eine Spalte nicht angegeben ist, wird ein Nullwert eingefügt. Ein Spaltenwert muss angegeben sein, wenn er Teil eines Primärschlüssels ist, dessen Werte nicht von der Datenbank verarbeitet werden (sondern über eine automatisch erhöhte Einschränkung oder Folge). Untersuchen Sie die Schlüsseldefinition in der Antwort „describeTable“, um den Primärschlüssel zu bestimmen. Die Antwort enthält die Primärschlüssel der Features, die erfolgreich eingefügt wurden.
Die JSON-Textkörperdarstellung ist im GeoJSON-Format. Weitere Informationen über GeoJSON finden Sie unter geojson.org/geojson-spec.html.
ACL-Autorisierungsfluss
Um einen oder mehrere Datensätze in eine benannte Tabelle einfügen zu können, benötigt der Benutzer (oder alle Rollen, zu denen er gehört) wie folgt Ausführungs- und Erstellungsberechtigungen für die benannte Tabelle:
- „EXECUTE“ für den Entitätstyp „Location Intelligence.Named Resources“
- bzw. „CREATE“ für den Entitätstyp „Location Intelligence.Dataset.DML“
URL-Format von HTTP-POST-Anforderungen
Für HTTP-POST-Anforderungen wird das folgende Format verwendet:
HTTP POST: /tables/tablename/features.rep?
POST Data: action=insert&[commitInterval=c]
POST BODY: Content-Type:application/json {table insert}
table insert ist ein POST-JSON-Textkörper (Content-Type: application/json) für das Einfügen der Tabelle, der mindestens ein einzufügendes Feature enthält.
Parameter
Weitere Informationen zu den unten aufgeführten Parametertypen finden Sie unter URL-Anforderungsdatentypen.
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
tablename | Zeichenfolge | ja | Der Name der Relation, in die Features eingefügt werden sollen. Die Relation wird durch einen vollständig qualifizierten Namen für die benannte Tabelle angegeben, der auf dem Speicherort der benannten Tabelle in der Datenbank basiert. Der Name der benannten Tabelle wird zwischen dem „/tables“-Teil der URL und dem „/features.rep“-Teil der URL definiert. Zum Einfügen eines Features in einer benannten Tabelle, die sich unter „/Samples/NamedTables/WorldTable“ in der Datenbank befindet, würde beispielsweise folgende URL verwendet:.../FeatureService/tables/Samples/NamedTables /WorldTable/features.json;... |
rep | Zeichenfolge | ja | Die zurückzugebende Darstellung. Die unterstützte Darstellung ist JSON. |
action=insert | Zeichenfolge | ja | Die Aktion zum Einfügen der Features in die Tabelle. |
commitInterval=c | Ganze Zahl | no | Die Anzahl der Einfügevorgänge, die in einer Transaktion verarbeitet werden. Wenn Sie etwa 50 Features in eine Relation einfügen und „commitInterval“ auf 20 gesetzt ist, führt dies zu drei Transaktionen (20, 20, 10). Der Standardwert ist 50. Das Übergabeintervall wird bei Native TAB- und NativeX-Dateien ignoriert. |
Gibt zurück:
Gibt den Primärschlüssel der einzelnen Features in die Relation zurück. Bei Native und NativeX TAB-Dateien wird stattdessen eine SuccessfulInserts
-Antwort zurückgegeben, die die Anzahl der erfolgreich eingefügten Zeilen anzeigt.
Beispiel
Fügt zwei neue Features zu „MyTable“ hinzu, die Punkte in der Geometriespalte enthalten: die Werte 456 und 123 in „Column1“ und die Werte „vier fünf sechs“ und „eins zwei drei“ in „Column2“.
http://www.pbbi.com/rest/Spatial/FeatureService/tables/MyTable/features.json
?action=insert&commitInterval=1
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-73, 41]
},
"properties": {
"Column1": 456,
"Column2": "four five six"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-72, 42]
},
"properties": {
"Column1": 123,
"Column2": "one two three"
}
}]
}