版块栏目ID如何重新排序
删除了很多栏目,而这些删除的栏目ID就空着了,我想把所有栏目重新从1开始连续排序,找回浪费掉的版块ID。当然同时得把后面多余的ID也删除,让重新建立的栏目接着排序。举一反三,试着参考主题重置的语句自己写。遇到问题我可以给你挑错。
[code]ALTER TABLE `pw_forums` ADD `oldfid` MEDIUMINT UNSIGNED NOT NULL[/code][code]update pw_forums set oldfid=fid[/code][code]ALTER TABLE `pw_forums` DROP `fid`[/code][code]ALTER TABLE `pw_forums` ADD `fid` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST [/code]后面怎么搞?
依次执行以下10句话,可以把版块重新排序。
执行之前一定作好数据备份,发现问题就恢复,不保证一定成功。[quote]ALTER TABLE `pw_forums` ADD `oldfid` smallint(6) UNSIGNED NOT NULL [/quote]
[quote]update pw_forums set oldfid=fid[/quote]
[quote]ALTER TABLE `pw_forums` DROP `fid` [/quote]
[quote]ALTER TABLE `pw_forums` ADD `fid` smallint(6) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST [/quote]
[quote]update pw_forums f1,pw_forums f2 set f1.fup=f2.fid where f1.fup=f2.oldfid and f1.fup<>0[/quote]
[quote]update pw_forumdata fd,pw_forums f set fd.fid = f.fid where fd.fid=f.oldfid[/quote]
[quote]update pw_attachs a,pw_forums f set a.fid = f.fid where a.fid=f.oldfid[/quote]
[quote]update pw_posts p,pw_forums f set p.fid = f.fid where p.fid=f.oldfid[/quote]
[quote]update pw_threads t,pw_forums f set t.fid = f.fid where t.fid=f.oldfid[/quote]
[quote]ALTER TABLE `pw_forums` DROP `oldfid` [/quote]
多谢老大。真的万分感谢
感谢 白乐天 的帮助!:handshake
我按照上面操作版块是好了但是帖子却没有 麻烦帮忙一下行吗
帖子丢失了?给我地址看看。
看到了,这是因为你的fid已经超出了smallint的范围了
执行之前一定作好数据备份,发现问题就恢复,不保证一定成功。[quote]ALTER TABLE `pw_forums` ADD `oldfid` int(10) UNSIGNED NOT NULL [/quote]
[quote]update pw_forums set oldfid=fid[/quote]
[quote]ALTER TABLE `pw_forums` DROP `fid` [/quote]
[quote]ALTER TABLE `pw_forums` ADD `fid` int(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST [/quote]
[quote]update pw_forums f1,pw_forums f2 set f1.fup=f2.fid where f1.fup=f2.oldfid and f1.fup<>0[/quote]
[quote]update pw_forumdata fd,pw_forums f set fd.fid = f.fid where fd.fid=f.oldfid[/quote]
[quote]update pw_attachs a,pw_forums f set a.fid = f.fid where a.fid=f.oldfid[/quote]
[quote]update pw_posts p,pw_forums f set p.fid = f.fid where p.fid=f.oldfid[/quote]
[quote]update pw_threads t,pw_forums f set t.fid = f.fid where t.fid=f.oldfid[/quote]
[quote]ALTER TABLE `pw_forums` DROP `oldfid` [/quote]
感谢 白乐天 的帮助 解决了 小妹谢谢咯:handshake :) 具体怎么操作?修改那个文件?请管理员简单说下好么~` 我是 Discuz 7。0论坛 应该如何操作
谢谢
页:
[1]