Instrucciones de manejo de transacciones
-
START TRANSACTION — Empieza una nueva transacción, deja el commit a 0. Si hubiese habido algo de código previo a la transacción, éste se valida y comienza una nueva. Esto permite que se muestren los datos ya validados en el momento de realizar la transacción.
-
COMMIT — Lo usaremos para grabar las operaciones y finalizar las transacciones.

- ROLLBACK — Deshace las operaciones de la transacción y la finaliza. Ojo, sólo afecta a las instrucciones DML. Cosas como borrar una tabla no se puede deshacer con rollback (se hace un
drop tabley solucionado).

-
SAVEPOINT nombreSavePoint — Crea un punto de guardado dentro de la transacción para tener una referencia en caso de querer deshacer cambios pero no todos.
-
ROLLBACK TO nombreSavePoint — Deshace los cambios hasta el punto de guardado indicado. Al igual que
rollback, solo afecta a las instrucciones DML.

-
SET TRANSACTION — Permite cambiar el nivel de aislamiento de la transacción.
-
LOCK TABLES — Permite bloquear explícitamente una o varias tablas. A la vez cierra todas las transacciones abiertas.
Ejemplos
Un ejemplo sencillo:

Y como debería ser bien hecho, con comprobantes de errores y volcando código y texto de error en variables out:
