gpt4 book ai didi

mysql - 在 MySql BLOB 列上创建空间索引时出错

转载 作者:行者123 更新时间:2023-11-29 03:15:11 27 4
gpt4 key购买 nike

我正在尝试将空间索引添加到名为 Location 的 BLOB 类型的表列中。如果我试试这个:

ALTER TABLE route ADD SPATIAL INDEX(Location); 

我得到:

Error: BLOB/TEXT column 'Location' used in key specification without a key length

但是在official docs for MySql 5.1 (我正在使用的版本),它在引用空间索引时明确表示:

"In MySQL 5.1, column prefix lengths are prohibited. The full width of each column is indexed."

这肯定是说我不需要提供前缀。我试着像这样添加一个前缀:

ALTER TABLE route ADD SPATIAL INDEX(Location(256)); 

然后我得到:

Error: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys

那到底是怎么回事??有关信息,我正在使用 MySQL 5.1.37 社区,我的表是 MyISAM,这是创建语句:

CREATE TABLE `climb`.`route` ( 
`Id` int(11) NOT NULL,
`Name` varchar(255) NOT NULL,
`Location` blob,
PRIMARY KEY (`Id`),
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

PS 我也试过让 Location NOT NULL,这没有什么区别。

最佳答案

应该在 GEOMETRY 类型上创建空间索引。

CREATE TABLE `route` (
`Id` int(11) NOT NULL,
`Name` varchar(255) NOT NULL,
`Location` GEOMETRY NOT NULL,
PRIMARY KEY (`Id`),
SPATIAL KEY (`Location`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

关于mysql - 在 MySql BLOB 列上创建空间索引时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1282962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com