【2】MySQL数据库管理 —— 4. MySQL事务控制语言(TCL)

事务控制语言(TCL)

  • 事务控制语言有时可能需要使用DML进行批量数据的删除,修改,增加。

  • 比如,在一个员工系统中,想删除一个人的信息。除了删除这个人的基本信息外,还应该删除与此人有关的其他信息,如邮箱,地址等等。那么从开始执行到结束,就会构成一个事务。对于事务,要保证事务的完整性。要么成功,要么撤回。

  • 事务要符合四个条件(ACID):

    1. 原子性:事务要么成功,要么撤回。不可切割性。
    2. 一致性:事务开始前和结束后,要保证数据的一致性。转账前 账号A 和 账号B 的钱总数为10000,转账后账号A 和 账号B 的钱总数应该还是10000;
    3. 隔离性:当涉及到多用户操作同一张表时,数据库会为每一个用户开启一个事务。那么当其中一个事务正在进行时,其他事务应该处于等待状态。保证事务之间不会受影响。
    4. 持久性:当一个事务被提交后,我们要保证数据库里的数据是永久改变的。即使数据库崩溃了,我们也要保证事务的完整性。
  • commit 提交

  • rollback 撤回

  • savepoint 保存点

  • 只有DML操作会触发一个事务。存储引擎(ENGINE):就是指表类型.当存储引擎为innodb时,才支持事务。默认的存储引擎为Myisam。不支持事务。

  • 事务的验证:

    第一步:start transaction(交易)

    第二步:savepoint 保存点名称

    第三步:DML

    第四步:commit/rollback

Guess you like

Origin blog.csdn.net/weixin_45791800/article/details/121351863