遇到问题:连接数据库查看payment表数据时报错表已经被损坏了,然后我就打算删除表后再重新创建,结果提示该表是存在的,如下:

MySQL先删除再创建表但仍提示表存在的解决办法

但查看该数据库表时确实没有这个表。

解决思路:innodb引擎建payment表时在Data中的joymart数据库目录下中会生成两个文件:

payment.frm(保存了每个表的元数据,包括表结构的定义等,该文件与数据库引擎无关)

payment.ibd(InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件)。

MySQL先删除再创建表但仍提示表存在的解决办法

我查看目录的时候却发现只有payment.ibd而parment.frm丢失了,说明只是InnoDB 内部数据字典中存在该表,导致payment成为孤表了。

解决办法一:如果payment无数据,或者数据不需要,则可直接删除payment.ibd文件,然后再重新建表,创建成功。

解决办法二:数据需要的情况下,则是在其他库中创建相同结构的payment表,然后把payment.frm文件复制到joymart数据库文件夹下。

相关文章:

  • 2022-02-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-15
  • 2022-12-23
  • 2021-05-27
  • 2021-07-29
猜你喜欢
  • 2021-06-09
  • 2022-12-23
  • 2021-07-26
  • 2021-12-18
  • 2021-05-16
  • 2021-06-29
相关资源
相似解决方案