Spatialite에서는 테이블 생성시 바로 공간 데이터 필드를 추가할 수 없다. 먼저 공간 데이터 필드를 제외하고 테이블을 생성한다.
CREATE TABLE main_item ( id INTEGER PRIMARY KEY AUTOINCREMENT, layer TEXT, title TEXT, feature_id INTEGER );
이제 공간 데이터 필드를 추가한다.
SELECT AddGeometryColumn('main_item', 'geometry', -1, 'GEOMETRY', 'XY');
AddGeometryColumn 함수의 3번째는 EPSG 코드값이며, 4번째는 POINT, LINESTRING, POLYGON, MULTIPOINT 등이 올 수 있다. GEOMETRY는 모든 타입의 공간 데이터를 받을 수 있다.
공간 데이터 필드에 공간 인덱스를 건다.
SELECT CreateSpatialIndex('main_item', 'geometry');
끝으로 Row를 추가하는 SQL문은 다음과 같다.
INSERT INTO main_item (layer, title, feature_id, geometry) VALUES ('layer1', 'title1', 100, ST_GEOMFROMTEXT('POINT(128.32132 37.34322)', -1));