MySQL-错误代码:1070。指定的关键部分太多;

时间:2018-11-19 14:18:51

标签: mysql

我试图在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;

有人知道如何增加关键部分的数量吗?

谢谢, 马克。

2 个答案:

答案 0 :(得分:1)

我通过在Mac OSX上使用MySQL 5.7.24解决了这个问题。

使用8.0+版本无效。

我想我使用的框架不支持更高版本的mysql。

答案 1 :(得分:1)

这是因为value与其他不同数据类型的列在主键中。 我只是通过反复试验弄清楚了这一点。在MYSQL 8中,如果一个或多个是空间类型,则不能具有混合组件的键。 从主键中取出价值,它应该起作用。 无论如何,自动递增列对于PK来说会更好。