感觉这里的逻辑,事务开始提前了,检查账户 A 和账户 B 是否可用,和检查 A 是否够 100 元,应该不需要在事务里面。
保证扣减和增加在同一个事务里就 ok 了
保证扣减和增加在同一个事务里就 ok 了
2017-02-09
已采纳回答 / 不古_
不是多余的,本例中的iud三条语句互相联系不大,所以你可能有点误解比如你要对数据库进行操作如下:张三要给李四转100块钱第一步:张三账户里减100块钱第二步:李四账户里多100块钱假如这是两条sql语句,但是你在执行的过程中,第一条语句执行成功,第二条语句因为你把李四的卡号输错了,执行报错,但是因为你已经成功的执行了第一条语句,所以这个时候张三账户里已经少了这100块钱,但是又由于第二条语句没有执行,所以李四的账户里并没有加上这100块钱rollback的作用就是,让这一次操作中的数据回到初始状态,即张三...
2017-02-09
忙了一天,python和eclipse,pydev就不说了,Python-MySQL connector下载也很简单,SQLyog工具也下了,最花时间的就是下MySQL服务器和配置了,
2017-02-06
最新回答 / chuan781
https://www.python.org/downloads/ 这个地址里面有两个版本 老师用的是2.7的 我把python安装好了 但是弄不好eclipse
2017-01-30
最新回答 / Huang小明
<...图片...><...图片...>我遇到跟你一样的问题,我百度了很多帖子都说是类似“str = 1”这样用内置函数做变量,从而导致python 中内置的str函数被覆盖掉了,解决方法是可以重新启动程序。但我的代码并没有用str做变量而且我的代码也是跟老师的一样第一次调用str函数。。。。然而还是报了这个str不可调用的错误,搞不懂,题主搞懂了发个解决的办法出来哦,谢啦~~
2017-01-25
CREATE TABLE user (
userid INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(100) DEFAULT NULL,
PRIMARY KEY (userid)
) ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=UTF8MB4
userid INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(100) DEFAULT NULL,
PRIMARY KEY (userid)
) ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=UTF8MB4
2017-01-24
如果用户刚好100元, SQL语句中就不能用 > 了
估计老师是为方便演示吧,这样的话,就得多写一下余额不能 <= 0 的情况
估计老师是为方便演示吧,这样的话,就得多写一下余额不能 <= 0 的情况
2017-01-22
最赞回答 / LBruce
已解决,按此网址的方法的确很简单~~http://www.cnblogs.com/rollenholt/archive/2011/08/06/2129641.html
2017-01-12