免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3367 | 回复: 4
打印 上一主题 下一主题

[金融] update方式更新表字段的速度?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-26 14:36 |只看该作者 |倒序浏览
想问一个问题,关于update更新的速度。可能在对账中用的多一些。
首先有两张表A,B,其中都有一个字段属性一样,都是值唯一。两个表的着一个字段可以唯一确定一条记录。如果两个表的两条记录匹配上后需要更新量表的标志位。现有两种更细方法。
第一种:
使用A表的一条记录查找B表的记录,并更新标志位。成功后更新A表的标志位。
A.a=123456;
update B set flag=1 where A.a=B.a;
update A set flag=1 where A.a=123456;

第二种:还不知道是否可以,可以吗??
使用A表的一条记录查找B表的记录,并同时更新AB两表的标志位。

update A,B set A.flag=1,B.flag=1 where A.a=B.a;

论坛徽章:
0
2 [报告]
发表于 2008-09-27 09:56 |只看该作者
应该是update A,B set B.flag=1 where A.a = B.a,只要A.a和B.a都是索引,应该是很快的.

论坛徽章:
0
3 [报告]
发表于 2008-09-27 13:43 |只看该作者
原帖由 nmzqzw 于 2008-9-27 09:56 发表
应该是update A,B set B.flag=1 where A.a = B.a,只要A.a和B.a都是索引,应该是很快的.



update A,B set B.flag=1 where A.a = B.a    这样还是只更新一个表啊,我希望同时更新两张表

论坛徽章:
0
4 [报告]
发表于 2008-09-30 22:00 |只看该作者
那你试一下这样写看行不行,我也不太确定
update A,B set B.flag=1, A.flag=1 From A,B  where A.a = B.a

论坛徽章:
0
5 [报告]
发表于 2008-10-10 05:37 |只看该作者
update a,b 这种方式很多数据库不一定有,
比较常见的写法:
update a set a.col=xxxx
where exists ( select 1 from b where  a.key1=b.key1)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP