如何解决mysql错误1062(23000):重复条目'';对于键';英国能力简称';

如何解决mysql错误1062(23000):重复条目'';对于键';英国能力简称';,mysql,mariadb,Mysql,Mariadb,我试图向列添加一个唯一的键,但得到了一个自解释的错误 MariaDB [dnd]> ALTER TABLE ability -> ADD UNIQUE INDEX UK_ability_shortname (shortname); ERROR 1062 (23000): Duplicate entry '' for key 'UK_ability_shortname' 但问题是我看不到任何复制品 MariaDB [INFORMATION_SCHEMA]> sele

我试图向列添加一个唯一的键,但得到了一个自解释的错误

MariaDB [dnd]> ALTER TABLE ability
    ->   ADD UNIQUE INDEX UK_ability_shortname (shortname);
ERROR 1062 (23000): Duplicate entry '' for key 'UK_ability_shortname'
但问题是我看不到任何复制品

MariaDB [INFORMATION_SCHEMA]> select * from INNODB_SYS_INDEXES WHERE NAME LIKE 'UK_%';
+----------+---------------------------------+----------+------+----------+---------+-------+
| INDEX_ID | NAME                            | TABLE_ID | TYPE | N_FIELDS | PAGE_NO | SPACE |
+----------+---------------------------------+----------+------+----------+---------+-------+
|     1733 | UK_food_food                    |      563 |    2 |        1 |       4 |   558 |
|     1737 | UK_type_type                    |      565 |    2 |        1 |       4 |   560 |
|     2077 | UK_invite_status_status         |      763 |    2 |        1 |       4 |   752 |
|     2586 | UK_tool_class_name              |     1093 |    2 |        1 |       4 |  1082 |
|     2591 | UK_food_drink_lodging           |     1097 |    2 |        2 |       4 |  1086 |
|     2595 | UK_lifestyle_expenses_lifestyle |     1100 |    2 |        1 |       4 |  1089 |
|     2691 | UK_weapon_name                  |     1173 |    2 |        1 |       4 |  1162 |
|     2692 | UK_weapon_property_name         |     1174 |    2 |        1 |       4 |  1163 |
|     2696 | UK_ability_name                 |     1183 |    2 |        1 |       4 |  1172 |
+----------+---------------------------------+----------+------+----------+---------+-------+
9 rows in set (0.00 sec)
你知道我还能查什么来找出DB认为名称冲突的原因,或者我是否超过了某个索引名称限制

我试图更改的表定义

CREATE TABLE `ability` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `shortname` char(3) NOT NULL,
  `description` text,
  PRIMARY KEY (`id`),
  UNIQUE KEY `UK_ability_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='Page 175'
使用:服务器版本:10.0.15-MariaDB MariaDB服务器


请告诉我是否可以提供任何其他信息。

错误消息表示至少有两行具有相同的列
shortname值(
'
:空字符串)。因此,MariaDB无法在该列上创建唯一索引。使用此查询在列中搜索任何(其他)重复值:

SELECT
    shortname,
    GROUP_CONCAT(id)
FROM
    ability
GROUP BY
    shortname
HAVING
    COUNT(0) > 1

DOH误读了错误,并假定索引名是重复的。谢谢,我能花点时间来表达我对Mysql错误消息的热爱吗?谢谢你发布这个。