Transacciones MYSQL

Mysql

Las tablas del tipo InnoDB están estructuradas de forma distinta que MyISAM, ya que se almacenan en un sólo archivo en lugar de tres, y sus principales características son que permite trabajar con transacciones, y definir reglas de integridad referencial.

Las transacciones aportan una fiabilidad superior a las bases de datos. Si disponemos de una serie de consultas SQL que deben ejecutarse en conjunto, con el uso de transacciones podemos tener la certeza de que nunca nos quedaremos a medio camino de su ejecución. De hecho, podríamos decir que las transacciones aportan una característica de «deshacer» a las aplicaciones de bases de datos.

Crear tabla

CREATE TABLE `transaction_example` ( id INT NOT NULL AUTO_INCREMENT , value TEXT NOT NULL , PRIMARY KEY (id)) ENGINE = InnoDB 

Insertar primera fila

INSERT INTO `transaction_example` (`value`) VALUES('Example 1');

Listar filas

SELECT * FROM `transaction_example`;

Haciendo un rollback

En este ejemplo, realizaremos una operación de INSERT pero que no surtirá efecto, ya que al hacer un ROLLBACK los cambios no se ejecutan.

BEGIN;
INSERT INTO `transaction_example` (`value`) VALUES('Example 2');
SELECT * FROM `transaction_example`;
ROLLBACK;

Realizando los cambios

Para realizar un cambio de forma real, podremos hacerlo de la siguiente forma.

BEGIN;
INSERT INTO `transaction_example` (`value`) VALUES('Example 3');
SELECT * FROM `transaction_example`;
COMMIT;

Realizando los cambios e intentando un rollback

Al hacer un COMMIT antes del ROLLBACK, es imposible volver atrás ya que los cambios han sido realizados.

BEGIN;
INSERT INTO `transaction_example` (`value`) VALUES('Example 4');
SELECT * FROM `transaction_example`;
COMMIT;
ROLLBACK;

Escribe una respuesta