Discuz7.x论坛备份数据互补工具 Discuz7.2论坛合并工具 Discuz!NT转Discuz7.2工具 DV.Net转Discuz7.2工具
Discuz!X1论坛备份数据互补工具 Discuz! X1 合并工具 Phpwind7.5转Discuz!NT3.1工具 Discuz!NT转Discuz!X1工具
Discuz!X1转Discuz!NT3.1工具
返回列表 回复 发帖

[phpwind] 帖子ID如何重新排序

删除了很多广告帖子,而这些删除的帖子ID就空着了,我想把所有文章重新从1开始连续排序,找回浪费掉的帖子ID。当然同时得把后面多余的ID也删除,让重新发表的文章接着排序。

类似的还有论坛版块的重排。从PHPWIND追踪至此。恳请老大解决

[ 本帖最后由 xzqt 于 2008-2-21 08:28 编辑 ]
我想了一下,除了单独写段程序来处理,没有简单的语句能够做到。还是劝你放弃这个做法,因为这样重新排列后,所有搜索引擎以前收录的帖子地址都会失效。
业务联系QQ466356742  MSN && EMAIL: bailetian@hotmail.com

论坛问题请不要随意加我,我每晚会上论坛回答。
不用考虑搜索引擎,因为暂时拒绝蜘蛛。请老大给个方法。或插件

依次执行以下8句话,可以把主题重新排序。

执行之前一定作好数据备份,发现问题就恢复,不保证一定成功。
ALTER TABLE `pw_threads` ADD `oldtid` MEDIUMINT UNSIGNED NOT NULL
update pw_threads set oldtid=tid
ALTER TABLE `pw_threads` DROP `tid`
ALTER TABLE `pw_threads` ADD `tid` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST
update pw_posts p,pw_threads t set p.tid = t.tid where p.tid=t.oldtid
update pw_attachs a,pw_threads t set a.tid = t.tid where a.tid=t.oldtid
update pw_tmsgs tm,pw_threads t set tm.tid = t.tid where tm.tid=t.oldtid
ALTER TABLE `pw_threads` DROP `oldtid`
看懂的话,其他的xid排序也是同一思路。
业务联系QQ466356742  MSN && EMAIL: bailetian@hotmail.com

论坛问题请不要随意加我,我每晚会上论坛回答。
谢谢,我试试。不懂再来打扰。。
对了,不会影响今后程序升级吧?
PS:老大真的不错。我会介绍其他人过来支持您

[ 本帖最后由 xzqt 于 2008-2-24 09:45 编辑 ]
前面都很顺利,第7句:
update pw_tmsgs tm,pw_threads t set tm.tid = t.tid where tm.tid=t.oldtid
这句执行不了。

后面第8句也不敢执行。因为你说的要依次。

但貌似帖子ID重置了。不解


错误
SQL 查询:

UPDATE pw_tmsgs tm,
pw_threads t SET tm.tid = t.tid WHERE tm.tid = t.oldtid

MySQL 返回:

#1062 - Duplicate entry '2' for key 1

[ 本帖最后由 xzqt 于 2008-2-24 10:13 编辑 ]
请问,这个帖子ID重排对phpwind7.0管用吗?谢谢
不知道对7.0有效否,没空试,你有兴趣自己试试。这个是主题ID重排,不是帖子ID重排。尽量不要重排主题ID,这样搜索引擎里的旧连接就失效了。
业务联系QQ466356742  MSN && EMAIL: bailetian@hotmail.com

论坛问题请不要随意加我,我每晚会上论坛回答。
虽然冷清,但是货真价实
返回列表