我有一个点列,现在我不希望它们用点值填充,该点值是用GeomFromText(POINT(45.713958 14.209463))
计算的。我如何不断收到此错误,但我不知道该怎么办:
无法从发送到GEOMETRY字段的数据中获取几何对象
这是我的SQL查询
INSERT
INTO
`locations`(
`unique_id`,
`latitude`,
`longitude`,
`coordinates`,
)
VALUES(
'Y2UyMTA4N2',
45.933191,
15.316599,
'GeomFromText(POINT(45.713958 14.209463))',
)
查询如何插入点值?
更新
我的创建表语句
CREATE TABLE IF NOT EXISTS `locations` (
`id_location` INT NOT NULL AUTO_INCREMENT,
`unique_id` VARCHAR(10) NOT NULL,
`latitude` DECIMAL(9,7) NULL,
`longitude` DECIMAL(9,7) NULL,
`coordinates` POINT NOT NULL,
PRIMARY KEY (`id_location`),
UNIQUE INDEX `unique_id_UNIQUE` (`unique_id` ASC),
SPATIAL INDEX `coordinates_idx` (`coordinates` ASC))
ENGINE = MyISAM
最佳答案
13.15.3 Functions That Create Geometry Values from WKT Values :: GeomFromText(wkt[, srid]), GeometryFromText(wkt[, srid])。
...
从MySQL 5.7.6开始不推荐使用GeomFromText()和GeometryFromText()
并将在将来的MySQL版本中删除。使用ST_GeomFromText()
和ST_GeometryFromText()代替。
尝试:
INSERT INTO `locations`
( `unique_id`,
`latitude`,
`longitude`,
`coordinates`
) VALUES (
'Y2UyMTA4N2',
45.933191,
15.316599,
-- 'GeomFromText(POINT(45.713958 14.209463))' -- ERROR
-- GeomFromText('POINT(45.713958 14.209463)')
ST_GeomFromText('POINT(45.713958 14.209463)')
);
请参见db-fiddle。
关于mysql - 在地理坐标的点列中插入点值时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43547378/