添加多列全文索引失败,出现 1062 重复条目

Mar*_*ury 12 mysql

我正在尝试将全文索引添加到 MySQL 中的现有表中。我可以成功地在此表上添加单列全文索引,但是如果我尝试添加多列索引,则会失败。我想添加一个多列全文索引,以便能够在 SELECT 查询中跨多个列进行搜索。

架构如下:

CREATE TABLE `emailarchive_people` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `emailAddress` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `person` (`name`,`emailAddress`)
) ENGINE=InnoDB AUTO_INCREMENT=100230 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
Run Code Online (Sandbox Code Playgroud)

以下单个索引创建查询有效:

ALTER TABLE
    `emailarchive_people`
ADD
    FULLTEXT INDEX `name` (`name`);
Run Code Online (Sandbox Code Playgroud)

然而以下查询:

ALTER TABLE
    `emailarchive_people`
ADD
    FULLTEXT INDEX `personFT` (`name`,`emailAddress`);
Run Code Online (Sandbox Code Playgroud)

...失败并出现以下响应:

Error Code: 1062. Duplicate entry 'NULL-NULL' for key 'emailarchive_people.personFT'
Run Code Online (Sandbox Code Playgroud)

person我还尝试在尝试添加索引之前删除唯一键personFT,但出现相同的错误。

Not*_*yro 7

这是 MySQL 中的一个错误:https ://bugs.mysql.com/bug.php?id=109242

可能是因为您使用的是全文索引,所以情况就是如此。