728x90
임시 테이블 생성
id
, geometry
두 개의 컬럼을 구성된 테이블을 생성한다.
CREATE TABLE `geo_test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`geo` geometry DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
테이블에 geometry 타입 데이터 추가 (에러 발생)
아래 SQL 구문을 실행하면 "Cannot get geometry object from data you send to the GEOMETRY field" 에러가 발생한다. geometry 필드에 텍스트 값을 넣으려고 했기 때문에 발생한 에러이다.
INSERT INTO `geo_test`
VALUES (0,'POINT(1 1)'),
(1,'LINESTRING(2 1, 6 6)'),
(2,'POLYGON((0 5, 2 5, 2 7, 0 7, 0 5))')
ST_GeomFromText 함수를 사용해서 geometry 타입 데이터 추가
ST_GeomFromText 함수를 사용해서 Text 값을 Geometry 타입으로 변환해서 넣으면 에러 없이 성공적으로 수행된다.
INSERT INTO `geo_test`
VALUES (0,ST_GeomFromText('POINT(1 1)')),
(1,ST_GeomFromText('LINESTRING(2 1, 6 6)')),
(2,ST_GeomFromText('POLYGON((0 5, 2 5, 2 7, 0 7, 0 5))'));
'Database' 카테고리의 다른 글
Oracle 순위를 반환하는 함수 (RANK, DENSE_RANK, ROW_NUMBER) (0) | 2020.01.23 |
---|---|
JDBC 드라이버에서 MySQL 데이터베이스 문자 인코딩 설정 (0) | 2019.06.23 |
H2 대소문자 구분 없이 Like 검색 (case insensitive like query) (0) | 2019.04.29 |
SYBASE IQ 사용자 로그인시 비밀번호 변경 하도록 설정 (0) | 2019.04.25 |
MSSQL Microsoft SQL 서버 버전 목록 (0) | 2019.04.25 |
댓글