Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

DUDA ROLLBACK

Buen día. intenté ejecutar los comandos tal cual se explicaba pero al llamar a la tabla luego de ejecutar el rollback, no quitó los elementos insertados entre start transaction y rollback. Realicé nuevamente las sentencias con los códigos facilitados por la sección de "Haga lo que hicimos en aula" y tampoco funciona. ALguien puede decirme que estoy haciendo mal? saludos

INSERT INTO ventas_jugos.tb_vendedor (MATRICULA, NOMBRE, BARRIO, COMISION, FECHA_ADMISION, DE_VACACIONES) VALUES ('256', 'Fernando Ruiz', 'Oblatos', '0.1', '2015-06-14', 0);

SELECT * FROM tb_vendedor; START TRANSACTION;

INSERT INTO ventas_jugos.tb_vendedor (MATRICULA, NOMBRE, BARRIO, COMISION, FECHA_ADMISION, DE_VACACIONES) VALUES ('257', 'Fernando Rojas', 'Oblatos', '0.1', '2015-06-14', 0);

INSERT INTO ventas_jugos.tb_vendedor (MATRICULA, NOMBRE, BARRIO, COMISION, FECHA_ADMISION, DE_VACACIONES) VALUES ('258', 'David Rojas', 'Del Valle', '0.15', '2015-06-14', 0);

ROLLBACK;(no funcionó)

UPDATE tb_vendedor SET COMISION = COMISION * 1.05;

SELECT * FROM tb_vendedor;

1 respuesta

¡Hola Leopoldo!

Gracias por compartir tu duda con nosotros. Parece que estás teniendo problemas con el comando ROLLBACK en MySQL.

En tu caso, estás realizando correctamente el inicio de la transacción con START TRANSACTION, luego insertas algunos registros en la tabla tb_vendedor y posteriormente actualizas la comisión de los vendedores. Sin embargo, al ejecutar el comando ROLLBACK, los cambios no se revierten y los registros insertados no se eliminan de la tabla.

Una posible explicación para esto es que estás utilizando el motor de almacenamiento MyISAM en lugar de InnoDB. El comando ROLLBACK solo funciona con el motor de almacenamiento InnoDB, ya que este motor admite transacciones.

Para solucionar este problema, puedes cambiar el motor de almacenamiento de la tabla tb_vendedor a InnoDB. Puedes hacerlo ejecutando el siguiente comando antes de crear la tabla:

ALTER TABLE tb_vendedor ENGINE = InnoDB;

Una vez que hayas cambiado el motor de almacenamiento, puedes volver a ejecutar tus comandos y el comando ROLLBACK debería funcionar correctamente.

Espero que esta solución te sea útil. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Buena suerte con tus estudios!

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)