Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Vista previa

Transacciones

Esta es la primera página de la lección. Léela y prueba las actividades. El resto está en el curso completo.

35 minutos

Los 50 euros que desaparecen

Marta le manda 50 euros a Iker con una aplicación del móvil. Para el banco son dos pasos: quitar 50 a Marta y sumar 50 a Iker.

Imagina que la luz se va justo entre los dos pasos. Marta ya ha pagado, pero Iker no ha cobrado.

¿Dónde están los 50 euros? En ningún sitio. Una transacción evita que pase esto.

Palabras clave

PalabraQué significaEjemplo
TransacciónUn grupo de órdenes que se hacen todas o no se hace ninguna.Quitar 50 y sumar 50
BEGINAbre la transacción: empieza el grupo.BEGIN;
COMMITConfirma la transacción: todos los cambios quedan guardados.COMMIT;
ROLLBACKDeshace la transacción: todo vuelve a como estaba.ROLLBACK;
Todo o nadaLa regla de una transacción: o salen todos los pasos, o ninguno.La transferencia entera
Copia de seguridadUna copia de la base de datos guardada por si se pierde la original.Un archivo de ayer

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Pruébalo: la transferencia sin protección

Código: sql
-- Primer paso: quitar 50 a Marta.
UPDATE accounts SET balance = balance - 50 WHERE owner = 'Marta';

-- Aquí se va la luz: el segundo paso no llega a ejecutarse.

-- Antes había 120 euros en total. ¿Cuántos hay ahora?
SELECT SUM(balance) AS total FROM accounts;

Ejemplo resuelto: la transferencia paso a paso

MomentoMartaIkerTotal
Al empezar10020120
Después de quitar 50 a Marta502070
Después de sumar 50 a Iker5070120

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Todo o nada

Una transacción junta varias órdenes en un solo paquete. Empieza con BEGIN.

Si todo va bien, escribes COMMIT y los cambios se guardan a la vez. Si algo falla, escribes ROLLBACK y todo vuelve a como estaba antes del BEGIN.

Pruébalo: la transferencia con COMMIT

Código: sql
BEGIN;
UPDATE accounts SET balance = balance - 50 WHERE owner = 'Marta';
UPDATE accounts SET balance = balance + 50 WHERE owner = 'Iker';
COMMIT;

-- Marta tiene 50 e Iker 70: el total sigue siendo 120.
SELECT * FROM accounts;

Pruébalo: la transferencia con ROLLBACK

Código: sql
BEGIN;
UPDATE accounts SET balance = balance - 50 WHERE owner = 'Marta';
-- Algo falla aquí, así que deshacemos todo.
ROLLBACK;

-- Marta vuelve a tener 100 e Iker 20.
SELECT * FROM accounts;

Repaso rápido: ordena la transferencia

Inténtalo

Repaso rápido: ordena la transferencia

3 preguntas
Pruébalo: tus respuestas se corrigen aquí y después se olvidan. Inicia sesión si quieres que se guarde tu puntuación y continuar donde lo dejaste.Iniciar sesión para guardar tu puntuación

Tus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.

La lección continúa

13 partes más de esta lección están en el curso completo, con los ejercicios y la comprobación final. Una cuenta te da todo.