事务相关问题

不久前,看了一道关于数据库的题。一个事务有2个语句,第一个语句执行成功,第二个语句因违反约束执行失败,请问提交之后会发生什么,大家在回答问题时,先别急于回帖,最好做个实验后,回帖顺便把实验结果贴出来。有可能结果和想象的不太一样哦。做完试验后,我在提出我的问题。...显示全部
不久前,看了一道关于数据库的题。一个事务有2个语句,第一个语句执行成功,第二个语句因违反约束执行失败,请问提交之后会发生什么,大家在回答问题时,先别急于回帖,最好做个实验后,回帖顺便把实验结果贴出来。有可能结果和想象的不太一样哦。做完试验后,我在提出我的问题。收起
参与36

查看其它 33 个回答atpeace331的回答

atpeace331atpeace331数据库管理员银行
刚刚试过了,第一条语句并没有因为第2条语句的执行失败而被回滚。我使用的是 SAMPLE 库中的 ACT 表。

测试命令如下:
            db2 +c "insert into act values (1,'test','fly') "
            命令执行成功

            db2 +c "insert into act values (2,'bbc','') "
            由于语句违反非空约束,执行失败
            db2  commit
            COMMIT 事务,感觉第一条语句的结果应该被回滚掉

            db2 " select * from act "
            结果两眼一坠,第一条语句的数据竟然已经插入到表中去了!!!

{:2_37:}
银行 · 2015-01-27
浏览809

回答者

atpeace331
数据库管理员银行

atpeace331 最近回答过的问题

回答状态

  • 发布时间:2015-01-27
  • 关注会员:1 人
  • 回答浏览:809
  • X社区推广