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

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

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

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

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

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

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

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

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

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

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

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

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

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

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
ORACLE 11G 双节点 RAC1和RAC2 时间不同步
回答 4
2节点时间相差这么大,按理应该会有一个节点被剔除出集群才对。应首先关闭2节点数据库,向后调整修改系统时间。检查数据库及集群日志情况,看看CTSS服务是否有异常了。
Oracle中在system下建立job,怎么指定到别的用户建立job运行?
回答 1
已采纳
登录该用户创建
Oracle 10053事件有几个级别,一般常用哪一个?
回答 1
已采纳
关于Oracle10053事件借助Oracle的10053事件event,我们可以监控到CBO对SQL进行成本计算和路径选择的过程和方法。10053事件有两个级别:Level2:2级是1级的一个子集,
有oracle的sql优化方向的视频么?
回答 1
已采纳
有,可以看看鹅学习上的黄远邦出的视频
Oracle11 降低磁盘io的优化方法,有比较好的建议吗?
回答 1
已采纳
无论哪个版本,提高SQL质量是最有效的方法,避免全表扫描,用到索引。
oracle随机取数据的函数用什么
回答 4
已采纳
selectfrom(selectfromt1orderbydbmsrandom.value())whererownum<10;
ogg初始化后,目标端的复制进程未使用源端提供的scn号启动,导致后续更新的数据目标端不同步,进程都是running的,这个得咋弄
回答 1
可以参考下面办法:重新初始化。目标端利用闪回数据库或者可以的话表空间定点恢复也行,如果trail文件还在,重新指定scn应用。配置oggveridata进行比对,空闲时repair。注:第二个办法需要
windows下OGG extract 进程一直显示Sending START request to MANAGER ('GGMGR') ... EXTRACT EXT_HZ starting 请问是什么情况
回答 2
1、确认下进程是否running2、确认下是否已经添加表级trandata3、同时看下ggserr.log里有无相关信息
Oracle怎么弄模拟数据?
回答 1
可以使用DBeaver的企业版(网上有破解版),自己创建表结构,然后选中刚创建的表单机右键——工具——GenerateMockData,可以自动生成地址、邮件、姓名等数据。
关于expdp导出的问题
回答 3
已采纳
expdpuser/pass@tnstablesXXX.XXZX% directoryxxx dumpfileexpdp.dmplogfilessss.log