首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表包含InnoDB中的4个索引,这与MySQL中定义的索引3的数量不同。

表包含InnoDB中的4个索引,这与MySQL中定义的索引3的数量不同。
EN

Database Administration用户
提问于 2020-02-20 09:26:23
回答 1查看 2.2K关注 0票数 1

数据库是MariaDB的旧版本,相当于MySQL 5.5。表中包含这些列。

代码语言:javascript
复制
id
auth
old_auth
device_id_fk

这个错误正在显示。

Table contains 4 indexes inside InnoDB, which is different from the number of indexes 3 defined in MySQL

SHOW CREATE TABLE的结果

代码语言:javascript
复制
CREATE TABLE `wtb_device_auths` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `device_id_fk` int(11) NOT NULL,

  `auth` varchar(255) COLLATE utf8_unicode_ci NOT NULL,

  `old_auth` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `auth_index` (`auth`),

  KEY `auth1_index` (`device_id_fk`),

  KEY `auth2_index` (`old_auth`)

) ENGINE=InnoDB AUTO_INCREMENT=627642 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

怎么修呢?

EN

回答 1

Database Administration用户

发布于 2020-02-20 23:14:01

此错误与Innodb定义与frm文件定义之间的差异有关。

这可能是因为ALTER TABLE或类似的语句在某一时刻发生了崩溃。

为了恢复一致性,ALTER TABLE wtb_device_auths FORCE将重新创建表(同时只锁定表)。这种娱乐活动应该使innodb和frm的定义保持一致。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/260121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档