新闻中心 网络推广 网站建设 优化推广 首页>新闻>网站建设

PB网站SQLITE升级到新版本出现以下错误。执行SQL发生错误!错误:no such index: ay_content_ext_contentid语句

时间:2025-11-05   访问量:0

如题,如果你手动更新PB的数据库的话,升级导致没有索引。
执行SQL发生错误!错误:no such index: ay_content_ext_contentid语句:SELECT a.*,b.name as sortname,b.filename as sortfilename,c.name as subsortname,c.filename as subfilename,d.type,d.name as modelname,d.urlname,e.*,f.gcode FROM ay_content a LEFT JOIN ay_content_sort b INDEXED BY ay_content_sort_scode ON a.scode=b.scode LEFT JOIN ay_content_sort c INDEXED BY ay_content_sort_scode ON a.subscode=c.scode LEFT JOIN ay_model d INDEXED BY ay_model_mcode ON b.mcode=d.mcode LEFT JOIN ay_member_group f ON a.gid=f.id LEFT JOIN ay_content_ext e INDEXED BY ay_content_ext_contentid ON a.id=e.contentid WHERE(a.scode in ('8','28','29','52') OR a.subscode='8') AND(a.status=1 AND d.type=2 AND a.date<'2025-11-05 23:11:25') AND(a.isrecommend=1) ORDER BY e.ext_jzsj desc LIMIT 6 OFFSET 0

在 Navicat 的 查询编辑器(新建查询)里一次性执行下面这些语句(复制粘贴,运行即可):

-- 为 ay_content_sort.scode 创建索引(如果之前没建)
CREATE INDEX IF NOT EXISTS ay_content_sort_scode ON ay_content_sort(scode);

-- 为 ay_model.mcode 创建索引(如果之前没建)
CREATE INDEX IF NOT EXISTS ay_model_mcode ON ay_model(mcode);

-- 为 ay_content_ext.contentid 创建索引(解决你当前的报错)
CREATE INDEX IF NOT EXISTS ay_content_ext_contentid ON ay_content_ext(contentid);

-- (可选)如果经常按 ext_jzsj 排序,建个辅助索引(只在真的有性能问题时考虑)
CREATE INDEX IF NOT EXISTS ay_content_ext_extjzsj ON ay_content_ext(ext_jzsj);

IF NOT EXISTS 会避免重复报错。运行后应该会显示“命令已成功执行”。

如果后续还有类似错误

按同样方法创建 CREATE INDEX IF NOT EXISTS 索引名 ON 表(字段); 即可;或者直接把源码里的 INDEXED BY\xxx`` 去掉(推荐)。


上一篇:让网站后台文章列表默认按sorting排序

下一篇:没有了!

服务咨询
1对1咨询,专业客服为您解疑答惑
联系销售
15899750475
在线咨询
联系在线客服,为您解答所有的疑问
ARE YOU INTERESTED IN ?
感兴趣吗?

有关我们服务的更多信息,请联系项目经理

15899750475 杨先生