本文主要是介绍SQL语言之TCL(Transaction Control Language),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有时我们可能需要使用DML进行批量数据的删除,修改,增加。比如,在一个员工系统中,我们想删除一个人的信息。除了删除这个人的基本信息外,还应该删除与此人有关的其他信息,如邮箱,地址等等。那么从开始执行到结束,就会构成一个事务。对于事务,我们要保证事务的完整性。要么成功。 要么撤回。
一般情况下事务要符合四个条件(ACID):
原子性(Atomicity):
事务要么成功,要么撤回。不可切割性。
一致性(Consistency):
事务开始前和结束后,要保证数据的一致性。例如:转账前账号A和账号B的钱的总数为10000; 转账后账号A和账号B的前的总数应该还是10000;
隔离性(Isolation):
当涉及到多用户操作同一张表时,数据库为会每一个用户开启一个事务。那么当其中一个事务正在进行时,其他事务应该处于等待状态。保证事务之间不会受影响。
持久性(Durability):
当一个事务被提交后,我们要保证数据库里的数据是永久改变的。即使数据库崩溃了,我们也要保证事务的完整性。
commit:提交
rollback:撤回,回滚。
savepoint:保存点
事务:只有DML操作会触发一个事务。存储引擎(ENGINE):就是指表类型。
当存储引擎为innodb时,才支持事务。有一个默认的存储引擎为Myisam。不支持事务。
事务的操作:
第一步:start transaction
第二步:savepoint 保存点名称。
第三步:DML
第四步:commit/rollback;
这篇关于SQL语言之TCL(Transaction Control Language)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!