Soporte API para las transacciones

El servidor MySQL soporta las transacciones dependiendo del motor de almacenamiento utilizado. Desde MySQL 5.5, el motor de almacenamiento por omisión es InnoDB. InnoDB tiene un soporte completo de las transacciones ACID.

Las transacciones pueden ser controladas utilizando SQL, o mediante llamadas API. Se recomienda utilizar las llamadas API para activar o desactivar el modo autocommit y para validar y anular las transacciones.

Ejemplo #1 Definir el modo autocommit a través de SQL o a través de la API

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// Recomendado: uso de la API para controlar la configuración de las transacciones
$mysqli->autocommit(false);

// No será monitoreado y reconocido por el plugin de replicación y balanceo de carga
$mysqli->query('SET AUTOCOMMIT = 0');

Los paquetes de funcionalidades adicionales, como los plugins de replicación y balanceo de carga pueden monitorear las llamadas API. El plugin de replicación ofrece seguridad sobre las transacciones durante el balanceo de carga, si las transacciones son controladas con llamadas API. La seguridad de las transacciones durante el balanceo de carga no está disponible si las consultas SQL son utilizadas para definir el modo autocommit, para validar o anular una transacción.

Ejemplo #2 Validación y anulación de una transacción

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");
$mysqli->autocommit(false);

$mysqli->query("INSERT INTO test(id) VALUES (1)");
$mysqli->rollback();

$mysqli->query("INSERT INTO test(id) VALUES (2)");
$mysqli->commit();

Tenga en cuenta que el servidor MySQL no puede anular todas las consultas. Algunas consultas requieren una validación implícita.

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top