MySQL 9.0 發行說明
建立空間資料欄位後,您可以將空間資料填入其中。
值應以內部幾何格式儲存,但您可以將它們從「已知文字」(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()。