知识大全 TIP 如何为表加唯一约束(保存或者删除冗余的数据)

Posted

篇首语:宁可枝头抱香死,何曾吹落北风中。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 TIP 如何为表加唯一约束(保存或者删除冗余的数据)相关的知识,希望对你有一定的参考价值。

TIP 如何为表加唯一约束(保存或者删除冗余的数据)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  前几天还被人问起有没有什么方法 在已有冗余的表上加唯一约束; 当然要删除冗余的数据了;我告诉他    SELECT * FROM emp a  WHERE rowid > ANY  (SELECT rowid FROM emp b   WHERE a ename = b ename  )  可以找到冗余的数据  今个发现还有一个比较简便的方法 如下使用 exceptions into exceptions;    SQL> create table t ( a int b int c int );    表已创建     SQL> insert into t select rownum rownum+ rownum+ from all_objects where rownum  < ;    已创建 行     SQL> insert into t select *from t where rownum< ;    已创建 行     SQL> mit;    提交完成     SQL> select *from t;         A     B     C                                                                                                                               已选择 行   SQL> create table exceptions(row_id rowid      owner varchar ( )      table_name varchar ( )      constraint varchar ( ));    表已创建     SQL>  SQL> alter table t add constraint t_unique     unique(a b c) exceptions into exceptions;  alter table t add constraint t_unique                 *  ERROR 位于第 行:  ORA : 无法验证 (EPUSER T_UNIQUE) 未找到重复关键字    SQL> create table dups     as select *from t where rowid in (select row_id from exceptions);    表已创建     SQL> select *from dups;         A     B     C                                                                                       SQL> select row_id from exceptions;    ROW_ID     AAAIEJAAKAAAyMSAAA  AAAIEJAAKAAAyMSAAE  AAAIEJAAKAAAyMSAAB  AAAIEJAAKAAAyMSAAF    SQL> delete from t where rowid in ( select row_id   from exceptions );    已删除 行     SQL> insert into t select distinct * from dups;    已创建 行     SQL>  SQL> mit;    提交完成     SQL> select *from t;         A     B     C                                                                                        cha138/Article/program/Oracle/201311/18829

相关参考

知识大全 Oracle数据库中违反唯一约束的处理

Oracle数据库中违反唯一约束的处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  根据NUL

知识大全 asp 保存数据与批量删除数据方法

  文章来提供一篇asp教程保存数据与批量删除数据方法哦在asp中保存数据到数据库教程也有很多种方法我们只说了二种同时删除数据也有很多方法单条删除批量删除会用到forin来实现  注意不同的字段名用英

知识大全 保存数据当ADO循环删除数据时需要注意的问题

保存数据当ADO循环删除数据时需要注意的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 创建自定义数据控制器基类

  摘要在这个Tip中你将学到如何创建一个自定义控制器基类让它能够为常见的数据库操作暴露一系列acton如显示插入更新和删除数据  无论什么时候你在写代码时都会发现其实你在一遍又一遍地编写着同样类型的

知识大全 Oracle外键的相关约束中级联删除的方案

Oracle外键的相关约束中级联删除的方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SQL

知识大全 小议数据库主键选取策略

  我们在建立数据库的时候需要为每张表指定一个主键所谓主键就是能够唯一标识表中某一行的属性或属性组一个表只能有一个主键但可以有多个候选索引因为主键可以唯一标识某一行记录所以可以确保执行数据更新删除的时

知识大全 金蝶做凭证时可以保存模板,怎样删除不需要的模板

金蝶做凭证时可以保存模板,怎样删除不需要的模板在金蝶中,打开\\“文件”菜单,在里面选择\\“调入模式凭证”选项,然后点击不需要的凭证模板,按删除键就可以删除啦!·WPS如何删除不需要的模板WPS删除

知识大全 ASP 操作cookies保存删除实例

ASP操作cookies保存删除实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Respon

知识大全 hibernate优化方案

  一批量修改和删除  在Hibernate中如果需要对任何数据进行修改和删除操作都需要先执行查询操作在得到要修改或者删除的数据后再对该数据进行相应的操作处理在数据量少的情况下采用这种处理方式没有问题

知识大全 临时表更适合做插入和查询操作

  ORACLE数据库除了可以保存永久表外还可以建立临时表temporarytables这些临时表用来保存一个会话SESSION的数据或者保存在一个事务中需要的数据当会话退出或者用户提交mit和回滚r