MYSQL-как вставить данные геометрии - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь вставить данные геометрии с помощью MYSQL, вот пример кода:

CREATE TABLE CARTESIAN
(
ROW_ID INT NOT NULL,
G GEOMETRY,
PRIMARY KEY(ROW_ID)
)

INSERT INTO CARTESIAN
VALUES (0,'POINT(1 1)'), 
       (1,'LINESTRING(2 1, 6 6)'), 
       (2,'POLYGON((0 5, 2 5, 2 7, 0 7, 0 5))')

Когда я запускаю INSERT, я получаю сообщение «Невозможно получить объект геометрии из данных, которые вы отправляете вГЕОМЕТРИЯ поле ".Можете ли вы объяснить мне, где я не прав?

1 Ответ

0 голосов
/ 25 ноября 2018

Вам необходимо преобразовать текстовые представления в GEOMETRY, прежде чем вы сможете вставить их, используя функцию ST_GeomFromText.Попробуйте это:

CREATE TABLE CARTESIAN
(
ROW_ID INT NOT NULL,
G GEOMETRY,
PRIMARY KEY(ROW_ID)
);
INSERT INTO CARTESIAN
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))'));
SELECT * FROM CARTESIAN

Вывод:

ROW_ID  G
0       [GEOMETRY - 25 B]
1       [GEOMETRY - 45 B]
2       [GEOMETRY - 97 B]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...