暂无图片
Oracle:建表的时候没有重复语句 ,为什么查表有重复记录 ,用distinct只会在查询结果中去重没有删除表重复记录 ?
我来答
分享
暂无图片 匿名用户
Oracle:建表的时候没有重复语句 ,为什么查表有重复记录 ,用distinct只会在查询结果中去重没有删除表重复记录 ?

尝试先用delete删除再insert插入 还是有重复记录 怎么解决 ?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
薛晓刚

因为最开始没有设置约束条件。

查询只是查询。不会删除。

建议删除重复数据后加上主键或者唯一约束。

或者清空数据后加上主键或者唯一约束。以后就不会有了。

暂无图片 评论
暂无图片 有用 0
暂无图片
刘晓华

Insert之前没重复记录,Insert之后有,有两钟情况:
1:你执行的那条SQL在select 出来的时候就有重复记录
2:你执行的那条SQL没重复记录,但在目标表里本来存在相同记录了
distinct当然不会删除表中的重复记录,只是select出来去重
源表去重,主键,distinct,minus…方法多的是,其实根本就不应该让重复记录产生

暂无图片 评论
暂无图片 有用 0
DarkAthena

你先确定你说的重复,是唯一键重复还是所有字段都重复?

如果只是唯一键重复,有其他字段不重复,你distinct *是去除不了唯一键重复的数据的。

暂无图片 评论
暂无图片 有用 0
Thomas

我个人觉得,提问时,最好拿实际数据举出例子。这样解答时也更有针对性。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏