Nachdem Sie raumbezogene Spalten eingerichtet haben, können Sie raumbezogene Daten hineinschreiben.
Die Werte sollten in einem internen Geometrieformat gespeichert werden, aber sie können aus dem Well-Known Text(WKT)- oder Well-Known Binary(WKB)-Format in dieses Format konvertiert werden. Die folgenden Beispiele zeigen, wie man Geometriewerte in eine Tabelle einfügt, indem man WKT-Werte in ein internes Geometrieformat konvertiert:
Die Konvertierung wird direkt in der
INSERT
-Anweisung ausgeführt:
INSERT INTO geom VALUES (GeomFromText('POINT(1 1)')); SET @g = 'POINT(1 1)'; INSERT INTO geom VALUES (GeomFromText(@g));
Die Konvertierung findet vor dem INSERT
statt:
SET @g = GeomFromText('POINT(1 1)'); INSERT INTO geom VALUES (@g);
Die folgenden Beispiele fügen komplexere Geometrien in eine Tabelle ein:
SET @g = 'LINESTRING(0 0,1 1,2 2)'; INSERT INTO geom VALUES (GeomFromText(@g)); SET @g = 'POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))'; INSERT INTO geom VALUES (GeomFromText(@g)); SET @g = 'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))'; INSERT INTO geom VALUES (GeomFromText(@g));
In diesen Beispielen wurden die Geometriewerte immer mit
GeomFromText()
erzeugt. Sie können jedoch
auch typspezifische Funktionen benutzen:
SET @g = 'POINT(1 1)'; INSERT INTO geom VALUES (PointFromText(@g)); SET @g = 'LINESTRING(0 0,1 1,2 2)'; INSERT INTO geom VALUES (LineStringFromText(@g)); SET @g = 'POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))'; INSERT INTO geom VALUES (PolygonFromText(@g)); SET @g = 'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))'; INSERT INTO geom VALUES (GeomCollFromText(@g));
Wenn eine Clientanwendung WKB-Darstellungen von Geometriewerten benutzen will, ist sie selbst dafür verantwortlich, wohlgeformte WKB-Daten in Anfragen an den Server zu senden. Diese Anforderung lässt sich allerdings auf mehrere Arten erfüllen. Zum Beispiel:
Indem man einen POINT(1 1)
-Wert mit der
Syntax eines Hexadezimal-Literals sendet:
mysql>INSERT INTO geom VALUES
->(GeomFromWKB(0x0101000000000000000000F03F000000000000F03F));
Eine ODBC-Anwendung kann eine WKB-Darstellung senden, indem
sie sie an einen Platzhalter mit einem Argument vom Typ
BLOB
bindet:
INSERT INTO geom VALUES (GeomFromWKB(?))
Andere Programmierschnittstellen können ähnliche Platzhaltermechanismen zur Verfügung stellen.
In einem C-Programm können Sie einen Binärwert durch
mysql_real_escape_string()
mit
Escape-Zeichen versehen und das Ergebnis in einen
Abfragestring laden, der an den Server geschickt wird. Siehe
hierzu Abschnitt 24.2.3.52, „mysql_real_escape_string()
“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.