发新话题
打印

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

帖子ID如何重新排序

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

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

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

TOP

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

论坛问题请不要随意加我,我每晚会上论坛回答。

TOP

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

TOP

依次执行以下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

论坛问题请不要随意加我,我每晚会上论坛回答。

TOP

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

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

TOP

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

TOP

发新话题