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

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

0c6b156c8e2131bb368f5079f1a0a491.png

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

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

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

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

73174c004613355fc6d8e0be4470fe3b.png

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值