MariaDB - 事务

  • 简述

    事务是顺序组操作。它们作为单个单元运行,并且在组内的所有操作成功执行之前不会终止。组中的单个故障会导致整个事务失败,并导致它对数据库没有影响。
    事务符合 ACID(原子性、一致性、隔离性和持久性) -
    • 原子性- 它通过中止失败和回滚更改来确保所有操作的成功。
    • 一致性- 它确保数据库对成功的事务应用更改。
    • 隔离性- 它支持事务的独立事务操作。
    • 持久性性 - 它确保在系统发生故障时成功事务的持久性。
    事务语句的开头是 START TRANSACTION 语句,后跟 COMMIT 和 ROLLBACK 语句 -
    • START TRANSACTION 开始事务。
    • COMMIT 保存对数据的更改。
    • ROLLBACK 结束事务,销毁任何更改。
    在成功的事务中,COMMIT 行动。失败时,ROLLBACK 起作用。
    注意- 某些语句会导致隐式提交,并且在事务中使用时也会导致错误。此类语句的示例包括但不限于 CREATE、ALTER 和 DROP。
    MariaDB 事务还包括 SAVEPOINT 和 LOCK TABLES 等选项。SAVEPOINT 设置要与 ROLLBACK 一起使用的还原点。LOCK TABLES 允许在会话期间控制对表的访问,以防止在某些时间段内进行修改。
    AUTOCOMMIT 变量提供对事务的控制。设置为 1 会强制将所有操作视为成功事务,设置为 0 会导致更改的持久性仅发生在显式 COMMIT 语句上。
  • 事务结构

    事务语句的一般结构包括以 START TRANSACTION 开头。下一步是插入一个或多个命令/操作,插入检查错误的语句,插入 ROLLBACK 语句以管理发现的任何错误,最后插入 COMMIT 语句以对成功的操作应用更改。
    查看下面给出的示例 -
    
    START TRANSACTION;
    SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
    UPDATE spring_products SET item = name;
    COMMIT;