dvbbs转discuz过程中遇到不能建立索引的解决办法

最近一直忙碌这社区的改版,关键问题是dvbbs数据库向discuz转移,由于不知道dvbbs的版本,discuz nt 3.1版的转移程序也没出来,所以自己上手对数据库做了手工转移,过程中涉及到很多问题,有空会慢慢写出来。

一、数据转移过程中遇到不能建立索引的问题

dvbbs转discuz nt 3.1过程中一旦遇到这个问题,提示某个ID有重复值““create unique index终止,因为发现了索引ID5的重复键...”,首先考虑到是某个列有重复值,但是不能说一定是主键、请检查建立索引里的所有列是否有重复的值。然后对重复值进行相应的处理,提供几个sql语句。

下面这段可以删除重复语句到零时表

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
由于WA_GZBItemTitle表手工删除不了重复的记录,所以只有先将该表唯一记录导出到临时表tmp_WA_GZBItemTitle中,执行语句为: select distinct * into tmp_WA_GZBItemTitle from WA_GZBItemTitle ;然后用delete from WA_GZBItemTitle语句将WA_GZBItemTitle表清空,之后执行 insert into WA_GZBItemTitle select * from tmp_WA_GZBI
下面这段进行有主键插入,比如你想保留原有主键值的情况下

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
set IDENTITY_INSERT TF_topics ON
insert into TF_topics(tid,fid,iconid,typeid,readperm,price,poster,posterid,title,attention,postdatetime,lastpost,lastpostid,lastposter,lastposterid,views,replies,displayorder,highlight,digest,rate,hide,attachment,moderated,closed,magic,identify,special) select * from tmp_TF_topics;

 

当然如果表结构本来有错误,在零时表获取数据之后可以删除实表,然后重新创建实表

转载于:https://www.cnblogs.com/opper/archive/2010/04/14/1711929.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值