当我修改一个MySQL表以添加索引时,我在错误日志中获得了以下错误。
表a/b包含InnoDB中的4个索引,这与MySQL中定义的索引3的数量不同
.frm文件和.ibd文件中更新的索引定义以及ibdata1。但是,“内部mysql”是什么意思呢?编辑(添加创建)
CREATE TABLE b (
p datetime DEFAULT NULL,
q datetime DEFAULT NULL,
r bigint(20) NOT NULL,
s varchar(25) DEFAULT NULL,
t varchar(50) DEFAULT NULL,
u datetime DEFAULT NULL,
v varchar(50) DEFAULT NULL,
w varchar(20) DEFAULT NULL,
x longtext,
y longtext,
z bigint(20) DEFAULT NULL,
k bigint(20) DEFAULT NULL,
PRIMARY KEY (r),
KEY e (z),
KEY f (u),
KEY g (s)
) ENGINE=InnoDB DEFAULT CHARSET=latin1发布于 2015-06-12 23:43:05
尝试一个没有操作的ALTER:
ALTER TABLE tablename ENGINE=InnoDB;(编辑)
我不知道为什么会出现这个问题。
以下是另一种可能有效的“修复”方法:
CREATE TABLE b_new LIKE b;
INSERT INTO b_new
SELECT * FROM b;
RENAME TABLE b TO b_old, b_new TO b;
DROP TABLE b_old;https://dba.stackexchange.com/questions/103894
复制相似问题