事务是一种机制、一个操作序列,包含了一组数据库操作命令。
事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。
举个例子: 银行转账,A给B转1000元,顺序先是A的账上扣1000,然后在B的账上加1000,如果在B的账上加1000之前,A的账上扣1000之后这个中间段出现了异常,就进行事务的回滚,回到转账这个操作之前的状态,这次操作也就不成立。
开启事务:
start transaction; 或者 begin;
提交事务:
commit;
回滚事务:
rollback;
事务四大特征:A C I D
Atomicity(原子性):事务是不可分割的最小操作单位,要么同时成功,要么同时失败
Consistency(一致性):事务完成时,必须使所有的数据都保持一致状态
Isolation(隔离性):多个事务之间,操作的可见性
Durability(持久性):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
注:MySQL提交方式默认自动提交
1为自动提交 0为手动提交
如若想设置手动提交:set @@autocommit = 0;
查询则是:select @@autocommit;
Oracle默认手动