百度 | 神马 | 搜狗 | 技术文档 | 学习资料分享 - 记录帝国CMS及运维技术的点点滴滴
你的位置:首页 > 帝国cms技术 » 正文

帝国CMS删除部分数据,生成报错的解决办法(phome_ecms_news_data_1' doesn't exist)

发布时间:2021-01-07

作品分类:帝国cms  报错  误删除


帝国CMS生成内容页出现以下错误(原因是一篇文章的部分片段丢失)


1    Table '***.phome_ecms_news_data_1' doesn't exist select keyid,dokey,newstempid,

closepl,infotags,address from ***_ecms_news_data_ where id='188' limit 1

这个主要是因为信息表中该信息已经删除了,但是索引表中还存在,所以就出错了。
类似的情况非常多,例如在phpmyadmin中操作数据库,删除了部分信息,但一篇文章,所有信息存在三个位置。
1、存在phome_ecms_news_index表中(文章索引列表)
2、存储在phome_ecms_news主表中(主要存标题、日期等重要信息)
3、存储在phome_ecms_news_data_1副表中(主要存字段体积较大,调用次数又比较少的字段,比如文章的正文)

如论删除以上三个表中任何内容,都需要同时删除三个表中对应的内容,否则就会出现错误。

那么现在只删除了其中一个表的内容,如何删除其他两个表的对应信息了,Easy!安排

如下,小编手工删除phome_ecms_news_data_1表中的信息后报错,那么怎么办呢?

第一步:删除phome_ecms_news_index索引表的信息。
delete from `phome_ecms_news_index` where id not in(select id from phome_ecms_news_data_1)

第二步:删除phome_ecms_news主表中对应的信息。
delete from `phome_ecms_news` where id not in(select id from phome_ecms_news_data_1)

如上两步,就可以将表格对齐了。

提示:数据操作前,请先备份数据库。切记!!如果有重要数据或严重错误,可让小编帮忙处理,100元起步,QQ/微信654321114  感谢支持www.5d.ink
通过上述教程,基本能自己动手解决的!建议操作前先把上述两行代码吃透,因为每个帝国cms数据库可能后期都有差别,例如表头不是phome,或者副表不是data_1而是data_2,自己核对数据库表的结构,以免偷懒3分钟白折腾三天三夜。
 
Top