mysql事物提交语句_MySQL事务的提交

事务的提交方式为手动提交

有两个账户,a账户有900元,b账户有1100元

开启一个事务,使用update语句,实现由b账户,向a账户转100元的转账功能

bc9f622cf5895311308<a%20href=5028972809ad7.jpg" alt="这里写图片描述" title="">

执行完成上述语句,查询account表中的余额

e9d7a17df5740c087525da2934dfa5fe.png图片描述" title="">

可以看出,在事务中实现了转账功能

此时,退出数据库,然后重新登录,查询数据库中各账户的余额

422204d3f7480b098b4a3c42c5ba20bd.png图片描述" title="">

可以看出,事务中的转账功能没有成功

因此,在事务中转账成功后,没有提交事务就退出数据库了,由于,事务中的语句不能自动提交,因此,当前的操作都被自动取消了

commit

使用commit语句,提交事务

30fbca7209dd398330d9d5883f83316c.png图片描述" title="">

7dac7c500c4203aa0f73420f1843a3d0.png图片描述" title="">

可以看出,事务中的转账操作成功了

注意,事务中的操作,都是手动提交的,因此,在操作完事务时,一定要使用COMMIT语句提交事务,否则,事务操作会失败

总结

以上是编程之家为你收集整理的MySQL事务的提交全部内容,希望文章能够帮你解决MySQL事务的提交所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于mysql事务处理 public static void StartTransaction(Connection con, String[] sqls) throws Exception { if (sqls == null) { return; } Statement sm = null; try { // 事务开始 System.out.println("事务处理开始!"); con.setAutoCommit(false); // 设置连接不自动提交,即用该连接进行的操作都不更新到数据库 sm = con.createStatement(); // 创建Statement对象 //依次执行传入的SQL语句 for (int i = 0; i < sqls.length; i++) { sm.execute(sqls[i]);// 执行添加事物语句 } System.out.println("提交事务处理!"); con.commit(); // 提交给数据库处理 System.out.println("事务处理结束!"); // 事务结束 //捕获执行SQL语句组中的异常 } catch (SQLException e) { try { System.out.println("事务执行失败,进行回滚!\n"); con.rollback(); // 若前面某条语句出现异常时,进行回滚,取消前面执行的所有操作 } catch (SQLException e1) { e1.printStackTrace(); } } finally { sm.close(); } } 通常都是上述的写法, 在mysql 不支持事务的时候 , 中间的 setAutoCommit 的事务操作是不是都不生效. 现在innoDB支持 事务了, 上述的 java 代码是否能实现 以下的 事务隔离的 操作, 在修改的时候处于锁定状态 或者 只可以通过存储过程来实现, 单行的锁定 BEGIN; SELECT book_number FROM book WHERE book_id = 123 FOR UPDATE; --这里for update , 以前用Oracle的时候也是有这个行锁 // ... UPDATE book SET book_number = book_number - 1 WHERE book_id = 123; COMMIT;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值