Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 问一下, 数据库转换成InnoDB后 pre_forum_post表的position楼层字段有什么解决方法

[复制链接]
jiangchuankyo 发表于 2020-5-7 16:53:09 | 显示全部楼层 |阅读模式
原始系统MyiASM引擎pre_forum_post表的position楼层字段, 设计的是联合tid唯一主键: (tid, position每次自动增加1)

但是InnoDB的引擎不支持后面的主键自动增1, 网上教程说把主键改成position在前面,
那样改了后tid索引跑到后面去不是索引就失效了胡乱改吗

我现在用的方法是在function_forum.php里面的插入帖子这句C::t('forum_post')->insert($tableid, $data);前面增加手动查询当前主题最大position加1,
但是效率很低,有时候同时发帖人多了会导致2个人分配了同一个position直接mysql崩溃提示联合主键值重复!

复制代码
这个同时发帖人多了, mysql联合就会

 楼主| jiangchuankyo 发表于 2020-5-7 16:55:26 | 显示全部楼层
代码被拦截了:

501错误
抱歉,当前页面无法正常访问!
由于您提交的信息对网站可能造成威胁,
出于安全考虑,您的访问被拦截。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 21:28 , Processed in 0.020160 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表