MySQL 8.3 Release Notes
创建空间列后,您可以使用空间数据填充它们。
值应以内部几何格式存储,但您可以从 Well-Known Text (WKT) 或 Well-Known Binary (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()。