删除a表中和b表相同的数据
来源:互联网 发布:caj转换word软件 编辑:程序博客网 时间:2024/05/20 00:14
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
删除a表中和b表相同的数据
环境:
1、WindowsNT4.0+ORACLE8.0.4
2、ORACLE安装路径为:C:ORANT
问题提出:
在做数据转储业务的时候,如果发生操作错误,有可能出现主表和副表中都有同一种数据,这样结算的结果就有可能发生错误。
实现方法:
SQL>createtablea(
2bmchar(4),--编码
3mcvarchar2(20)--名称
4)
5/
表已建立.
SQL>insertintoavalues('1111','1111');
SQL>insertintoavalues('1112','1111');
SQL>insertintoavalues('1113','1111');
SQL>insertintoavalues('1114','1111');
SQL>insertintoavalues('1115','1111');
SQL>createtablebasselect*fromawhere1=2;
表已建立.
SQL>insertintobvalues('1111','1111');
SQL>insertintobvalues('1112','1111');
SQL>insertintobvalues('1113','1111');
SQL>insertintobvalues('1114','1111');
SQL>commit;
完全提交.
SQL>select*froma;
BMMC
------------------------
11111111
11121111
11131111
11141111
11151111
SQL>select*fromb;
BMMC
------------------------
11111111
11121111
11131111
11141111
方法一:exists子句
SQL>deletefromawhereexists(select'X'frombwherea.bm=b.bmanda.mc=b.mc);
删除4个记录.
where条件:如果两个表中都拥有相同字段的主键(primarykey),则只需比较两个主键就可以了
方法二:in子句
SQL>deletefromawhere(bm,mc)in(selectbm,mcfromb);
删除4个记录.
SQL>select*froma;
BMMC
------------------------
11151111
实际测试结论:
在表不是很大时,用in子句速度还可以忍受,而如果记录量很多时(十万条以上),in子句简直让人难以人忍受,速度奇慢。
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
删除a表中和b表相同的数据
环境:
1、WindowsNT4.0+ORACLE8.0.4
2、ORACLE安装路径为:C:ORANT
问题提出:
在做数据转储业务的时候,如果发生操作错误,有可能出现主表和副表中都有同一种数据,这样结算的结果就有可能发生错误。
实现方法:
SQL>createtablea(
2bmchar(4),--编码
3mcvarchar2(20)--名称
4)
5/
表已建立.
SQL>insertintoavalues('1111','1111');
SQL>insertintoavalues('1112','1111');
SQL>insertintoavalues('1113','1111');
SQL>insertintoavalues('1114','1111');
SQL>insertintoavalues('1115','1111');
SQL>createtablebasselect*fromawhere1=2;
表已建立.
SQL>insertintobvalues('1111','1111');
SQL>insertintobvalues('1112','1111');
SQL>insertintobvalues('1113','1111');
SQL>insertintobvalues('1114','1111');
SQL>commit;
完全提交.
SQL>select*froma;
BMMC
------------------------
11111111
11121111
11131111
11141111
11151111
SQL>select*fromb;
BMMC
------------------------
11111111
11121111
11131111
11141111
方法一:exists子句
SQL>deletefromawhereexists(select'X'frombwherea.bm=b.bmanda.mc=b.mc);
删除4个记录.
where条件:如果两个表中都拥有相同字段的主键(primarykey),则只需比较两个主键就可以了
方法二:in子句
SQL>deletefromawhere(bm,mc)in(selectbm,mcfromb);
删除4个记录.
SQL>select*froma;
BMMC
------------------------
11151111
实际测试结论:
在表不是很大时,用in子句速度还可以忍受,而如果记录量很多时(十万条以上),in子句简直让人难以人忍受,速度奇慢。
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 删除a表中和b表相同的数据
- 删除a表中和b表相同的数据
- 删除a表中和b表相同的数据
- 删除a表中和b表相同的数据
- 删除a表中和b表相同的数据
- 删除一个表中和另一个表相同的记录
- 对比a,b两个表相同字段 数据的差异
- Firebird2.5:a、b表结构相同,向a表插入b表的数据
- 从链表a中找出与链表b相同的值并删除!
- 删除链表A中与链表B结点相同的结点
- 删除链表中和某一个数相同的元素(单向链表)哈理工oj1546
- oracle触发器(当插入或删除或修改一张表A时,能把新数据同步到另一张结构相同的表B里面)
- sql 把a表的数据插入b表中,where某一个字段相同
- 触发器实现删除一条数据连同其它表中和它有关的数据一并删除
- 在相同主键的两个表A,B中,按表A存在的记录删除表B中不存在的记录
- 有两个链表a和b,设结点中包含学号和姓名,从a链表中删除和b链表中相同学号的结点
- 删除字符串A中和所有和字符串B一样的内容
- SQL语句 删除表user 中字段name 内容重复的记录,A表 ,B表 字段相同 有关联关系的表 对表两个表中的数据
- 联机丛书:查看存储过程
- The Bridge Pattern C++实现
- 在Google“读书” Google大学免费开学
- 联机丛书:存储过程及其创建
- 性能调优1
- 删除a表中和b表相同的数据
- 在ORCAL中实现的复制
- 解密SQL2000的存储过程
- SQLSERVER打补丁后的版本号
- 调优日志切换(TuningLogSwitches)
- MY SQL教程(1)
- 数据文件坏删除数据文件
- 查看用户在某个对象上面的使用权限
- 桂林老兵的SQLSERVER高级注入技巧(摘)