我有一个点列,现在我不希望它们用点值填充,该点值是用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/

10-13 23:31