免费注册 查看新帖 |

Chinaunix

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

400里面执行sql语句(更新操作)需要commit么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-29 15:16 |只看该作者 |倒序浏览
本帖最后由 zhonglei56 于 2012-03-29 15:17 编辑

比如insert,update等语句,好像不需要commit的是吧?

如果有这样一个课题
   将tab里面所有记录,字段1的值(有两种值aaa和bbb),如需进行如下变换
1. 将原来为aaa的 变为 bbb
2. 将原来为bbb的 变为 aaa
请问两个操作能同时进行么,应该怎样实现这个课题比较好。
如果先执行1,再执行2,岂不是全部的记录都变成aaa了啊。。。

论坛徽章:
0
2 [报告]
发表于 2012-03-29 18:40 |只看该作者
如果你用commitment control那就需要,不然就不需要咯.

交换两个字段,只要

UPDAT TABLE SET FIELD1 = FIELD2, FIELD2 = FIELD1

就可以了。不必引入中间变量,也不用担心更新后两个字段被赋予同样的值。现在的SQL引擎聪明着呢,知道你想要干啥。

论坛徽章:
0
3 [报告]
发表于 2012-03-29 19:04 |只看该作者
在编译SQLRPG程序时:

1。如果指定了COMMIT参数为*YES,则需要启动事物,并需要自主控制提交或回滚,否则作业结束时修改的数据将被自动回滚。

2。如果指定了COMMIT参数为*NONE,则不需要启动事物,所修改的数据将立即生效。

完毕

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
4 [报告]
发表于 2012-03-29 22:49 |只看该作者
楼上说的很对
如果没有指定COMMIT那么就不需要了,指定了还是需要重新提交COMMIT的
同一个字段存在两个值,我觉得无所谓那个先改变后改变,一样的。
也可以写个程序来跑

论坛徽章:
0
5 [报告]
发表于 2012-03-30 10:45 |只看该作者
回复 4# junlee1986


    如果使用SQL应该怎么写呢,让1,2在一起完成。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
6 [报告]
发表于 2012-03-30 22:16 |只看该作者
SQL还真不好写,写程序来跑吧

论坛徽章:
0
7 [报告]
发表于 2012-04-01 14:45 |只看该作者
如果用SQL的话
1, UPDATE LIB/FILE SET FLD = ’ccc' where 字段1 = 'aaa'
      UPDATE LIB/FILE SET FLD = ’aaa' where 字段1 = 'bbb'
     UPDATE LIB/FILE SET FLD = ’bbb' where 字段1 = 'ccc'

2, 用ALTER TABLE LIB/FILE ADD COLUMN  增加新字段来保存字段1的值,以新字段的值为判断条件去update,用完ALTER TABLE LIB/FILE  DROP COLUMN移除新字段

3, 建临时表,这个方法不多叙述了

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
8 [报告]
发表于 2012-04-01 22:57 |只看该作者
那还不如写个临时程序呢

论坛徽章:
0
9 [报告]
发表于 2012-04-02 16:55 |只看该作者
哪里需要那么复杂,只要

UPDAT TABLE SET FIELD1 = FIELD2, FIELD2 = FIELD1

就搞定啦!

论坛徽章:
0
10 [报告]
发表于 2012-04-02 17:28 |只看该作者
回复 7# banym1982


    谢谢。但是我是想知道不增加列的方法。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP