MySQL中的事务是如何使用的
事务是一组逻辑操作,构成该操作的所有单元都不是成功的或失败的,这是一个事务。
注意:MySQL数据库支持事务,但是要求必须是InnoDB存储引擎
解决这个问题:
MySQL的事务解决了这个问题,因为MySQL的事务特性要求所有操作成功或失败,避免了一次操作,有些操作失败,数据的安全性。
如何使用:
(1)在执行SQL语句之前,我们必须打开事务启动事务;
(2)SQL语句的正常执行
(3)当SQL语句完成时,有两个实例:
1,他们都获得了成功,我们已经提交到数据库的SQL语句到数据库的影响,委员会
2,一些SQL语句失败,我们执行回滚(回滚),并迅速撤销数据库的操作。
(注:MySQL数据库支持事务,但是要求必须是InnoDB存储引擎)
MySQL >创建表的银行(name varchar(20),钱小数(5,1))= InnoDB引擎中
它的字符集utf8;
MySQL >插入银行价值('shaotuo ',1000),('laohu ',5000);
从银行选择*;
--------- -------- + + +
|名字|钱|
--------- -------- + + +
|韶托| 1000 |
|老虎| 5000 |
--------- -------- + + +
——没有成功回滚回滚的执行
启动事务;
查询OK,0行受影响(0秒)
MySQL >更新银行套钱=金钱+ 500 = 'shaotuo的名字;
查询OK,1行受影响(0秒)
匹配行:1更改:1个警告:0
MySQL >更新银行集金钱= money-500 name = 'laohu;
错误1054(42s22):未知column'moey'in'field列表
如果没有成功,则执行回滚操作。
查询OK,0行受影响(0.01秒)
从银行选择*;
--------- -------- + + +
|名字|钱|
--------- -------- + + +
|韶托| 1000 |
|老虎| 5000 |
--------- -------- + + +
——成功后提交操作
启动事务;
查询OK,0行受影响(0秒)
MySQL >更新银行套钱=金钱+ 500 = 'shaotuo的名字;
查询OK,1行受影响(0.01秒)
匹配行:1更改:1个警告:0
MySQL >更新银行套钱= money-500 name = 'laohu;
查询OK,1行受影响(0秒)
匹配行:1更改:1个警告:0
提交成功;(如果不是提交的实现,SQL语句不会影响真正的数据库)
查询OK,0行受影响(0.05秒)
从银行选择*;
--------- -------- + + +
|名字|钱|
--------- -------- + + +
|韶托| 1500 |
|老虎| 4500 |
--------- -------- + + +