PHPCMS2008提示"Duplicate entry '65535' for key 1"错误的解决方法

这是一个一般情况下不会出现的问题,因为通常一个站点的关键词基数都大65535这个数值以下,不过如果网站数据较大,比如达到了5W或者更高时,关键词的数量也会同步上升,这时问题就出现了!
RT,发表或者修改文章时就会提示上面的错误"Duplicate entry '65535' for key 1".

好了,关键在于怎么解决对吧!
修改字段类型,用MYSQL工具或者直接进入PHPMYADMIN,查找到表phpcms_keyword中的字段"tagid",这个字段默认的类型为SMALLINT,默认长度为5.那么我现在将他的字段类型修改为MEDIUMINT,长度修改为8.
如果后台开启了SQL执行的话,可以直接执行以下语句:
alter table phpcms_keyword modify column tagid mediumint(8) unsigned NOT NULL auto_increment;
修改好后再发表或者修改文章时就不会出现标题中的错误提示了.

查了一下,MEDIUMINT是一个中等大小整数,有符号的范围是-8388608到8388607,无符号的范围是0到16777215,占3字节.
另外,你还可以将这个字段类型直接设置为INT(10),这样表基数将能支持更大值.

程序修改此BUG方案:
install/main/下面phpcms.sql, phpcms_db.sql, phpcms_speed.sql中相应参数都要重新修改.
分别打开这个三表,搜索到tagid,将后面的smallint(5)改为mediumint(8)即可!


liuxq原创文章,转载需注明出处 http://www.liuxq.cn/2009/11/427/

评论暂缺

Comments are closed.