开发学院

您的位置:首页>教程>正文

教程正文

MariaDB 事务处理

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会导致更改的持久性仅在显式提交语句上发生。

事务的结构

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

  查看下面给出的例子:

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