数据库里面有重复记录,如何将它删除?我已经查找了大富翁问题集,怎么没有一点资料?大家没有遇到这种问题吗?(内容为空)(100分)

  • 主题发起人 主题发起人 dasa
  • 开始时间 开始时间
举个例子,如果要查找dfw离线数据库中ID重复的记录,以下的sql可以,删除就把select 改 DELETE好了
SELECT *
FROM letters
WHERE ((.ID IN (SELECT ID FROM letters As Tmp GROUP BY ID HAVING Count(*)>1 )))
ORDER BY ID;
 
同意楼上的。
 
你说是出现了两条完全相同的记录吧,没办法好像只能用SQL语句删除。
解决的办法是事先定义主键或多字段唯一索引,或定义一个自动增量字段
使其根本就不会出现完全相同的记录

 
各位,我遇到的问题具体是这样的:因为表里面有些记录出现了一模一样的重复记录,我想
把这些重复记录删除,这就要用到一个循环从第一条记录到最后一条记录查找一遍是否有重复记录
,若有,就企图把他删除。可是,当我删除了一条重复记录后,数据库实际上已经改变了(因为
已经删除路一条记录,被删除掉记录后的记录的序列号就改变了,比如说删除了第8条记录,那么
先前的第九条记录就变成了第8条记录),这时候,我企图删除第二条重复记录时就触发一个
异常:“已经有一位用户改动了数据库!”。
谢谢大家,请就这个问题展开深入的讨论。
 
‘Multiple records found,but only one was expected.’这就是触发错误的英文提示。
 
比较笨的办法:
新建一个结构一样的表
insert into newtable select distinct * from oldtable;
然后把数据再倒回去
 
1,直接用SELECT DISTINCT * 不就可以了吗?要是记录不多的话,用这个方法很好的
2,另外你这种错误好象是在SQLSERVER中出现的,是因为你没有定义主键,所以导致在录入
的时候产生重复记录,但是这样的删除好象不可以,所以你只有重新设置主键,就不会出现这样
的情况
 
sfsmoke试对的,这是最简单的方法
关键是要设主健
 
表一定要建主键或多字段唯一索引,或定义一个自动增量字段
否则[:D]
 
我看到的重复记录其实不是真正的重复记录
而是有人发贴子的时候多点了
主ID是不一样的,其余所有字段都一样
 
各位各位,谢谢大家!大家的解决方法都很不错,使我打开了思路。
当然,防范的方法很简单,只要建立主索引不允许重复就可以。但现在是重复数据已经
出现了,如何删除它?(不要告诉我打开数据库一条一条的删除哦!)
另外,我的问题并不是仅仅删除这么简单。因为出现重复数据的表(是一个就餐表)与别
的表(用户表)相连。当删除了就餐表的重复数据后,用户表的余额要补回去。所以用
删除再导回去的方法是解决不了问题的。
至于上面谈到的SQL语句,我已经试过了,只能删除第一条重复记录,当试图删除第二条重复
记录时触发一个异常:“数据库已经被一位用户更改了”。
请大家试一试,如果用SQL解决了,请说出您的具体方法。
 
执行SQL语句的时候出现异常,而且还删除了一条记录,不会吧,
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
423
import
I
后退
顶部