diszcuz 重新调整 fid /gid ,应该如何操作
你好SQL我略懂一些
但是我对 diszcuz 的数据不了解
不清楚
储存 fid 的是哪张表
可否指点一下
谢谢 补充说明:
我在建论坛前期,经常改版面, 少不了建了版块又删掉。。。
时间长了,就发现一个问题
我目前 fid 最大的已经有 1001 了
我仔细查了一下
其实目前的版块只有 近 30个
fid 50 ---1000 之前的 都是以前删了,
现在论坛我又想增加版块了, 重建后fid 自然从 1002 开始了
但是 50 - 1000 之间的这一段 ,不就浪费了么。
我想 利用上,
请示援助,谢谢! 不甚感激:handshake 不要重复发贴。我想好就会回复。
依次执行以下13句话,可以把版块重新排序。
[b][color=Red]执行之前一定作好数据备份,发现问题就恢复,不保证一定成功。有几条语句极其消耗资源,尽量选择服务器空闲时执行[/color][/b][quote]ALTER TABLE `cdb_forums` ADD `oldfid` smallint(6) UNSIGNED NOT NULL
update cdb_forums set oldfid=fid
ALTER TABLE `cdb_forums` DROP `fid`
ALTER TABLE `cdb_forums` ADD `fid` smallint(6) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST
update cdb_forums f1,cdb_forums f2 set f1.fup=f2.fid where f1.fup=f2.oldfid and f1.fup<>0
update cdb_forumfields fd,cdb_forums f set fd.fid = f.fid where fd.fid=f.oldfid
update cdb_favorites fa,cdb_forums f set fa.fid = f.fid where fa.fid=f.oldfid
update cdb_forumrecommend fr,cdb_forums f set fr.fid = f.fid where fr.fid=f.oldfid
update cdb_moderators m,cdb_forums f set m.fid = f.fid where m.fid=f.oldfid
update cdb_posts p,cdb_forums f set p.fid = f.fid where p.fid=f.oldfid
update cdb_threads t,cdb_forums f set t.fid = f.fid where t.fid=f.oldfid
update cdb_virtualforums v,cdb_forums f set v.fid = f.fid where v.fid=f.oldfid
ALTER TABLE `cdb_forums` DROP `oldfid` [/quote]
执行后更新缓存即可。 白老大,出了点小问题
[quote]升级错误,MySQL 提示: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update cdb_forums set oldfid=fidALTER TABLE `cdb_forums` DROP `fid` ALTER TABLE ' at line 1 ,请返回。[/quote] 我刚建了个测试版块,也没有成功
请老大,帮我看看
谢谢! 我说的是依次执行,不是整篇一起执行。 我刚刚在公司测试过了
一切OK
谢谢老大 老大 你这个6.0的能用吗?
我也想整理下 但是最后倒数第二句语句的时候就出现错误提示:
升级错误,MySQL 提示: Table 'sq_netx.cdb_virtualforums' doesn't exist ,请返回 这是for dz7的。6.0的话跳过倒第2句即可 感谢。。。呵呵! 还是不行。。算了 不整理了 这个玩意太麻烦了
只不过一个坛子FID都到上百了 看着有点别扭 成功了。。。哦也。。。
按照大佬的提示 6.0的去掉倒数第二行之后 整理成功
不过我提醒下大家
这个整理完了之后 不是能让你的版面按照UID数字顺序排列
只是让所有版面的FID数字连贯起来 板块显示次序是后台自己设置的,并不依赖FID [quote]执行之前一定作好数据备份,发现问题就恢复,不保证一定成功。有几条语句极其消耗资源,尽量选择服务器空闲时执行
执行后更新缓存即可。
[size=2][color=#999999]白乐天 发表于 2009-4-2 11:15[/color] [url=http://www.bbstobbs.com/redirect.php?goto=findpost&pid=815&ptid=127][img]http://www.bbstobbs.com/images/common/back.gif[/img][/url][/size][/quote]
这个dz7.0可以使用么? 可以用,但不建议做这种没意义的事 7.2能用么? 不能。不建议做这种没意义的事。 升级到 7。2后,
竟然也可以用
不过会出一点小问题
运行:[code]运行:update cdb_moderators m,cdb_forums f set m.fid = f.fid where m.fid=f.oldfid[/code]会出提示:
[quote]升级错误,MySQL 提示: Duplicate entry '25022-31' for key 1 ,请返回。[/quote]
运行:[code]update cdb_virtualforums v,cdb_forums f set v.fid = f.fid where v.fid=f.oldfid[/code]会提示:[quote]升级错误,MySQL 提示: Table 'guwanwo.cdb_virtualforums' doesn't exist ,请返回。[/quote]
虽然白老大的意思是
这没什么意义,但事实上,还真有不少人确是需要。
恳请 白老大再提供一份
7.0 /7.2 ,还有 X
汇集于一帖,造福后人。 感激 ing 我的7.1没有出现楼上的错误 我在7.1的时候重新排列过了。
页:
[1]