11.5.3.3 공간 컬럼에 데이터 이입
공간 컬럼을 생성 한 후에는 공간 데이터를 채울 수 있습니다.
값은 내부 기하 형식으로 저장해야하지만 WKT (Well-Known Text), WKB (Well-Known Binary) 중 형식들이 그 형식으로 값을 변환 할 수 있습니다. 다음의 예는 WKT 값을 내부 기하 형식으로 변환하여 기하 값을 테이블에 삽입하는 방법을 보여줍니다.
다음과 같이
INSERT
문에서 직접 변환을 실행합니다.INSERT INTO geom VALUES (GeomFromText ( 'POINT (1)')); SET @g = 'POINT (1 1)'; INSERT INTO geom VALUES (GeomFromText (@g));
다음과 같이
INSERT
전에 변환을 실행합니다.SET @g = GeomFromText ( 'POINT (1)'); INSERT INTO geom VALUES (@g);
다음 예제에서는보다 복잡한 기하 도형을 테이블에 삽입합니다.
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) LINESTRING (0 0,1 1,2 2,3 3,4 4))'; INSERT INTO geom VALUES (GeomFromText (@g));
위의 예에서는 GeomFromText()
를 사용하여 기하 값을 만들고 있습니다. 다음과 같이 형식에 고유의 함수를 사용할 수도 있습니다.
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) LINESTRING (0 0,1 1,2 2,3 3,4 4))'; INSERT INTO geom VALUES (GeomCollFromText (@g));
기하 값의 WKB 표현을 사용하는 클라이언트 응용 프로그램이 쿼리 올바르게 작성된 WKB 서버로 전송을 담당합니다. 이 요구 사항을 충족하는 방법에는 여러 가지가 있습니다. 예 :
다음과 같이 16 진수 리터럴 구문을 사용하여
POINT(1 1)
값을 삽입합니다.mysql>
INSERT INTO geom VALUES
->(GeomFromWKB(0x0101000000000000000000F03F000000000000F03F));
ODBC 응용 프로그램은
BLOB
형의 인수를 사용하여 WKB 표현을 자리 표시 자에 바인드 해, WKB 표현을 보낼 수 있습니다.INSERT INTO geom VALUES (GeomFromWKB (?))
다른 프로그래밍 인터페이스에도 비슷한 자리 표시 자 메커니즘을 지원하고있을 가능성이 있습니다.
C 프로그램에서는
mysql_real_escape_string()
을 사용하여 이진 값을 탈출하고 그 결과를 쿼리 문자열에 포함하여 서버로 보낼 수 있습니다. 섹션 23.8.7.54 "mysql_real_escape_string ()" 를 참조하십시오.