Thông tin về bảng được lưu trữ ở hai nơi:
- Tệp table.frm trên toàn máy chủ
- Từ điển InnoDB dành riêng cho công cụ lưu trữ
Hai điều này phải đồng bộ, nhưng không có cơ chế đáng tin cậy để thực thi tính nhất quán này. Do một số lý do mà từ điển InnoDB không được đồng bộ hóa.
Trong trường hợp của bạn, có một bản ghi không có trong từ điển. Bạn cần xóa nó.
InnoDB không cung cấp bất kỳ cách nào để sửa đổi thủ công các bản ghi từ điển. Nhưng bạn có thể tạo một tệp table.frm giả mạo (nếu innodb_file_per_table =ON thì table.ibd cũng vậy), đặt nó vào thư mục cơ sở dữ liệu và thả bảng.
Các phiên bản cũ của InnoDB có thể phàn nàn về việc SPACENO không khớp. Sau đó, hãy kiểm tra cách thực hiện sửa từ điển InnoDB