电脑技术学习

ecms 5.1升级到6.0过程中会员重复升级遇到的问题

dn001

最近在帮客户升级到6.0过程中出现如下提示:

Duplicate entry ‘10‘ for key 1
alter table ***_enewsmemberadd add todayinfodate varchar(10) NOT NULL default ‘‘, add todayaddinfo int(11) not null default ‘0‘, add todaydate varchar(10) NOT NULL default ‘‘, add todaydown int(11) not null default ‘0‘, add regip varchar(20) NOT NULL default ‘‘, add authstr varchar(30) NOT NULL default ‘‘, DROP INDEX userid, add PRIMARY KEY(userid);

官方给出的结果是:
原因:phome_enewsmemberadd表有重复用户ID的记录导致。
解决办法:用phpmyadmin进数据库删除phome_enewsmemberadd表重复ID的记录,查找方法可以用
“select * from phome_enewsmemberadd group by userid
SQL命令查找重复的ID,只要有重复的都会连续显示,只保留其中一条记录将多余的重复记录删除。
删除重复记录后按升级说明里的“重新升级说明步骤重新升级
;

以上这种方法虽可以,但如果重复的会员很多的话,这样来回操作非常麻烦

======更好的解决办法======


运行句语查找重复; select userid,count(userid) from phome_enewsmemberadd; group by userid having count(userid)>1

这样就可以把所有重复的会员ID号列出来,这样就可以逐个删除,不用来回重复升级这个步骤