MySQL 8.4 發行說明
建立空間欄位後,您可以使用空間資料填充它們。
值應以內部幾何格式儲存,但您可以從「已知文字 (WKT)」或「已知二進位 (WKB)」格式將它們轉換為該格式。以下範例示範如何透過將 WKT 值轉換為內部幾何格式,將幾何值插入表格中
以下範例將更複雜的幾何圖形插入表格中
SET @g = 'LINESTRING(0 0,1 1,2 2)';
INSERT INTO geom VALUES (ST_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 (ST_GeomFromText(@g));
SET @g =
'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))';
INSERT INTO geom VALUES (ST_GeomFromText(@g));
前面的範例使用 ST_GeomFromText()
來建立幾何值。您也可以使用特定類型的函數
SET @g = 'POINT(1 1)';
INSERT INTO geom VALUES (ST_PointFromText(@g));
SET @g = 'LINESTRING(0 0,1 1,2 2)';
INSERT INTO geom VALUES (ST_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 (ST_PolygonFromText(@g));
SET @g =
'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))';
INSERT INTO geom VALUES (ST_GeomCollFromText(@g));
想要使用幾何值 WKB 表示的用戶端應用程式程式,負責在查詢中將正確格式的 WKB 發送到伺服器。有多種方法可以滿足此要求。例如
使用十六進位文字語法插入
POINT(1 1)
值INSERT INTO geom VALUES (ST_GeomFromWKB(X'0101000000000000000000F03F000000000000F03F'));
ODBC 應用程式可以傳送 WKB 表示,並使用
BLOB
類型的引數將其繫結至預留位置INSERT INTO geom VALUES (ST_GeomFromWKB(?))
其他程式設計介面可能支援類似的預留位置機制。
在 C 程式中,您可以使用
mysql_real_escape_string_quote()
來逸出二進位值,並將結果包含在傳送到伺服器的查詢字串中。請參閱 mysql_real_escape_string_quote()。