论坛转换网's Archiver

xzqt 发表于 2008-2-21 08:20

帖子ID如何重新排序

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

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

[[i] 本帖最后由 xzqt 于 2008-2-21 08:28 编辑 [/i]]

白乐天 发表于 2008-2-21 18:06

我想了一下,除了单独写段程序来处理,没有简单的语句能够做到。还是劝你放弃这个做法,因为这样重新排列后,所有搜索引擎以前收录的帖子地址都会失效。

xzqt 发表于 2008-2-23 15:22

不用考虑搜索引擎,因为暂时拒绝蜘蛛。请老大给个方法。或插件

白乐天 发表于 2008-2-23 19:50

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

执行之前一定作好数据备份,发现问题就恢复,不保证一定成功。

[quote]ALTER TABLE `pw_threads` ADD `oldtid` MEDIUMINT UNSIGNED NOT NULL [/quote]

[quote]update pw_threads set oldtid=tid[/quote]

[quote]ALTER TABLE `pw_threads` DROP `tid` [/quote]

[quote]ALTER TABLE `pw_threads` ADD `tid` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST [/quote]

[quote]update pw_posts p,pw_threads t set p.tid = t.tid where p.tid=t.oldtid[/quote]

[quote]update pw_attachs a,pw_threads t set a.tid = t.tid where a.tid=t.oldtid[/quote]

[quote]update pw_tmsgs tm,pw_threads t set tm.tid = t.tid where tm.tid=t.oldtid[/quote]

[quote]ALTER TABLE `pw_threads` DROP `oldtid` [/quote]




看懂的话,其他的xid排序也是同一思路。

xzqt 发表于 2008-2-24 09:39

谢谢,我试试。不懂再来打扰。。
对了,不会影响今后程序升级吧?
PS:老大真的不错。我会介绍其他人过来支持您

[[i] 本帖最后由 xzqt 于 2008-2-24 09:45 编辑 [/i]]

xzqt 发表于 2008-2-24 10:03

前面都很顺利,第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

[[i] 本帖最后由 xzqt 于 2008-2-24 10:13 编辑 [/i]]

平淡 发表于 2009-3-7 07:41

请问,这个帖子ID重排对phpwind7.0管用吗?谢谢

白乐天 发表于 2009-3-7 13:08

不知道对7.0有效否,没空试,你有兴趣自己试试。这个是主题ID重排,不是帖子ID重排。尽量不要重排主题ID,这样搜索引擎里的旧连接就失效了。

aamp4 发表于 2011-7-26 14:06

白大,这一句执行不了,能修正下吗?很需要这个
update pw_tmsgs tm,pw_threads t set tm.tid = t.tid where tm.tid=t.oldtid

白乐天 发表于 2011-7-26 14:40

[quote]白大,这一句执行不了,能修正下吗?很需要这个
update pw_tmsgs tm,pw_threads t set tm.tid = t.tid where tm.tid=t.oldtid
[size=2][color=#999999]aamp4 发表于 2011-7-26 14:06[/color] [url=http://www.bbstobbs.com/redirect.php?goto=findpost&pid=2004&ptid=16][img]http://www.bbstobbs.com/images/common/back.gif[/img][/url][/size][/quote]

这个帖子比较久了,以前的语句未必适合现在的版本,请勿试。

我在其他帖子说过,今后不再回应关于xid重排的咨询。sorry

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.