我有一个点列,现在我不想使用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
答案 0 :(得分:1)
文字为 - POINT(45.713958 14.209463)
,GeomFromText
是一个函数,因此请尝试此查询 -
INSERT
INTO
`locations`(
`unique_id`,
`latitude`,
`longitude`,
`coordinates`
)
VALUES(
'Y2UyMTA4N2',
45.933191,
15.316599,
GeomFromText('POINT(45.713958 14.209463)')
)
答案 1 :(得分:1)
...
从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。