我正在尝试将全文索引添加到 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,但出现相同的错误。