Discuz7.x备份数据互补 Discuz7.2合并 Discuz!NT转Discuz7.2 DV.Net转Discuz7.2 UC1.5合并
Discuz!X1备份数据互补 Discuz!X1合并 Discuz!NT转Discuz!X1 Phpwind7.5转Discuz!NT3.1 UC1.6合并
Discuz!X1.5备份数据互补 Discuz!X1.5合并 Discuz!NT转Discuz!X1.5 Discuz!X1转Discuz!NT3.1 BBSMAX5转DX2
Discuz!X2备份数据互补 Discuz!X2合并 Discuz!NT转Discuz!X2 Discuz!X1.5转Discuz!NT3.5
Discuz!X2.5备份数据互补 Discuz!X2.5合并 Discuz!NT转Discuz!X2.5 dvbbs转Discuz!X2.5
Phpwind转Discuz!NT3.5 Discuz!X3合并 Discuz!NT转Discuz!X3 dvbbs转Discuz!X3
phpwind转Discuz!X3.1 Discuz!X3.1合并 Discuz!NT转Discuz!X3.1 dvbbs转Discuz!X3.1
phpwind转Discuz!X3.2 Discuz!X3.2合并 Discuz!NT转Discuz!X3.2 dvbbs转Discuz!X3.2
phpwind转Discuz!X3.3 Discuz!X3.3合并 Discuz!NT转Discuz!X3.3 dvbbs转Discuz!X3.3
返回列表 回复 发帖

diszcuz 重新调整 fid /gid ,应该如何操作

你好
SQL我略懂一些
但是我对 diszcuz  的数据不了解
不清楚
储存 fid 的是哪张表
可否指点一下
谢谢
补充说明:

我在建论坛前期,经常改版面, 少不了建了版块又删掉。。。
时间长了,就发现一个问题
我目前 fid 最大的已经有 1001 了
我仔细查了一下  
其实目前的版块只有 近  30个
fid 50 ---1000  之前的 都是以前删了,
现在论坛我又想增加版块了,  重建后fid 自然从 1002 开始了
但是  50 - 1000 之间的这一段 ,不就浪费了么。
我想 利用上,

请示援助,谢谢!  不甚感激
不要重复发贴。我想好就会回复。
业务联系QQ466356742   EMAIL: 466356742@qq.com
论坛问题请不要随意加我,我每晚会上论坛回答。

依次执行以下13句话,可以把版块重新排序。

执行之前一定作好数据备份,发现问题就恢复,不保证一定成功。有几条语句极其消耗资源,尽量选择服务器空闲时执行
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`
执行后更新缓存即可。
业务联系QQ466356742   EMAIL: 466356742@qq.com
论坛问题请不要随意加我,我每晚会上论坛回答。
白老大,出了点小问题
升级错误,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 ,请返回。
我刚建了个测试版块,也没有成功

请老大,帮我看看
谢谢!
我说的是依次执行,不是整篇一起执行。
业务联系QQ466356742   EMAIL: 466356742@qq.com
论坛问题请不要随意加我,我每晚会上论坛回答。
我刚刚在公司测试过了
一切OK

谢谢老大
老大 你这个6.0的能用吗?
我也想整理下 但是最后倒数第二句语句的时候就出现错误提示:


升级错误,MySQL 提示: Table 'sq_netx.cdb_virtualforums' doesn't exist ,请返回
这是for dz7的。6.0的话跳过倒第2句即可
业务联系QQ466356742   EMAIL: 466356742@qq.com
论坛问题请不要随意加我,我每晚会上论坛回答。
返回列表