错误代码:1070关键部位过多;

pgvzfuti  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(653)

我试图在mysql中运行以下代码,但出现以下错误:

Error Code: 1070. Too many key parts specified; max 1 parts allowed 0.0011 sec

原始sql代码:

CREATE TABLE IF NOT EXISTS RecordLocation3 (
    id BINARY(16) NOT NULL,
    typeId BINARY(16) NOT NULL,
    symbolId INT NOT NULL,
    value POINT NOT NULL,
    PRIMARY KEY (symbolId, value, typeId, id),
    KEY k_id (id),
    SPATIAL KEY k_value (value)
) ENGINE= MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin;

有人知道如何增加关键部件的数量吗?
谢谢,马克。

vmdwslir

vmdwslir1#

是因为 value 与不同数据类型的其他列一起位于主键中。我只是通过反复试验才弄明白这一点。在mysql 8中,如果一个或多个组件是空间类型,则不能有混合组件的键。把主键的值去掉,它就可以工作了。不管怎样,对于pk来说,自动递增列会更好。

o4tp2gmn

o4tp2gmn2#

我通过在MacOSX上使用MySQL5.7.24解决了这个问题。
使用版本8.0+不起作用。
我猜我使用的框架不支持mysql的更高版本。

相关问题