|
“学会接受并欣赏命运发给我们的牌,也许会有意想不到的乐趣。 我总认为,坦然的心境就是感受到幸福的理由。” |
如何用SQL重新排序留言跟评论的id
Author:风之逸 Date:2008-09-28 21:59
起因是当时blog被垃圾评论肆虐,然后删除了很多无用的评论跟留言。
后来自己琢磨过滤器为何无效,重新开启这个功能之后基本上就控制住了评论机器人。
这样id就出现了很大一段空缺。因为根据MySQL auto intrement的设计,删除了之后的id是不会重新利用的。
于是就有了重新排序的想法。去网上爬文,发现有效也直接的就是删除这个field,然后再生成。
本机测试,确实有效。
自然我是以f2blog的数据结构作为例子啦。其他的理论上不是问题。
后来发觉还是有问题,分析一下发觉是comments表里面的parent field跟id有关联。于是就需要做点别的处理。
去网上参照了一篇文章,
http://www.bbstobbs.com/thread-16-1-1.html
然后基于自己SQL的一点基础,尝试性的写了一个SQL Script,有效~
代码如下,相信简单的修改后对别的blog数据结构也是可以应用的。
重新排序guestbook id:
后来自己琢磨过滤器为何无效,重新开启这个功能之后基本上就控制住了评论机器人。
这样id就出现了很大一段空缺。因为根据MySQL auto intrement的设计,删除了之后的id是不会重新利用的。
于是就有了重新排序的想法。去网上爬文,发现有效也直接的就是删除这个field,然后再生成。
本机测试,确实有效。
自然我是以f2blog的数据结构作为例子啦。其他的理论上不是问题。
后来发觉还是有问题,分析一下发觉是comments表里面的parent field跟id有关联。于是就需要做点别的处理。
去网上参照了一篇文章,
http://www.bbstobbs.com/thread-16-1-1.html
然后基于自己SQL的一点基础,尝试性的写了一个SQL Script,有效~
代码如下,相信简单的修改后对别的blog数据结构也是可以应用的。
重新排序guestbook id:
ALTER TABLE `f2blog_guestbook` ADD `oldid` int(8) NOT NULL; update f2blog_guestbook set oldid=id; ALTER TABLE `f2blog_guestbook` DROP `id`; ALTER TABLE `f2blog_guestbook` ADD `id`
- 1


