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;