Mariadb 简明教程

MariaDB - Transactions

事务是连续的组操作。它们作为一个单一单元运行,并且在组内所有操作全部成功执行之前不会终止。组内只要有一个操作失败,整个事务就会失败,并且这不会对数据库产生任何影响。

事务符合 ACID(原子性、一致性、隔离性和耐久性)−

  1. Atomicity − 通过在发生故障时中止并回滚更改来确保所有操作成功。

  2. Consistency − 它确保数据库在事务成功后应用更改。

  3. Isolation − 它使事务能够独立操作。

  4. Durability − 它确保系统发生故障时成功的事务的持久性。

在事务语句的开头是 START TRANSACTION 语句,后面跟着 COMMIT 和 ROLLBACK 语句 −

  1. START TRANSACTION 开始事务。

  2. COMMIT 保存对数据所做的更改。

  3. ROLLBACK 结束事务,销毁所有更改。

在事务成功时,COMMIT 起作用。在失败时,ROLLBACK 起作用。

Note − 某些语句会导致隐式提交,当在事务内使用时,它们也会导致错误。此类语句的示例包括但不限于 CREATE、ALTER 和 DROP。

MariaDB 事务还包括 SAVEPOINT 和 LOCK TABLES 等选项。SAVEPOINT 设置一个还原点以用于 ROLLBACK。LOCK TABLES 可以在会话期间控制对表的访问,以防止在某些时间段内进行修改。

AUTOCOMMIT 变量提供对事务的控制。将其设置为 1 会强制所有操作都被视为成功事务,而将其设置为 0 则会导致只有在显式 COMMIT 语句中才会持久保留更改。

Structure of a Transaction

事务语句的一般结构包含从 START TRANSACTION 开始。下一步是插入一个或多个命令/操作,插入检查错误的语句,插入 ROLLBACK 语句以管理发现的任何错误,最后插入 COMMIT 语句以对成功操作应用更改。

查看下面给出的示例 −

START TRANSACTION;
SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
UPDATE spring_products SET item = name;
COMMIT;