Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Transaccionalidad Fundamentos de SQL

A veces una sola consulta SQL no basta 😅 Por ejemplo, imagina que queremos transferir dinero de una cuenta a otra. No podemos hacerlo con una sola instrucción: hay que restar de una cuenta y sumar en otra.

Pero ¿qué pasa si algo falla en medio del proceso? Ahí entran las transacciones.

💰 Ejemplo: transferencia de dinero

Tenemos una tabla accounts con dos usuarios:

id user_id amount
1 10 100
2 30 100

Queremos pasar 50 del usuario 10 al 30. Podríamos hacerlo con tres pasos:

SELECT amount FROM accounts WHERE user_id = 10;
UPDATE accounts SET amount = amount - 50 WHERE user_id = 10;
UPDATE accounts SET amount = amount + 50 WHERE user_id = 30;

💬 El problema: si el sistema se apaga entre la segunda y la tercera consulta, el dinero se resta pero nunca llega 😬

id user_id amount
1 10 100
2 30 100

Ver en DB Fiddle

Solución: usar una transacción

Una transacción agrupa varias consultas en una sola operación lógica. O se ejecuta toda completa, o no se ejecuta nada.

Así se ve en SQL:

BEGIN;

SELECT amount FROM accounts WHERE user_id = 10;
UPDATE accounts SET amount = amount - 50 WHERE user_id = 10;
UPDATE accounts SET amount = amount + 50 WHERE user_id = 30;

COMMIT;

💬 BEGIN inicia la transacción, y COMMIT la confirma si todo salió bien.

Si algo falla entre medio, la base de datos revierte automáticamente los cambios. Nada queda a medias 💪

Ver en DB Fiddle

Revertir manualmente: ROLLBACK

Si por alguna razón quieres cancelar los cambios tú mismo:

BEGIN;
UPDATE accounts SET amount = amount - 50 WHERE user_id = 10;
ROLLBACK;

💬 ROLLBACK deshace todo lo hecho desde el BEGIN. Es como decir: “olvida lo que pasó, no guardes nada”.

Ver en DB Fiddle

¿Qué hace que una transacción sea confiable?

Un buen sistema transaccional sigue las reglas ACID: cuatro principios que garantizan que los datos sean seguros y consistentes.

Letra Significa En palabras simples
A — Atomicity Atomicidad Todo o nada. Si algo falla, nada se guarda.
C — Consistency Consistencia Al terminar, los datos siempre están en un estado válido.
I — Isolation Aislamiento Las transacciones paralelas no se mezclan entre sí.
D — Durability Durabilidad Una vez confirmada, la transacción no se pierde (ni con un apagón).

💡 Estas reglas hacen que el sistema se comporte de manera predecible, incluso ante errores.

Manejo de transacciones

  1. BEGIN — Inicia el bloque de transacciones.
  2. Se ejecutan las consultas.
  3. Si todo sale bien → COMMIT.
  4. Si algo falla → ROLLBACK (se deshacen todos los cambios).

⚠️ Por qué importan las transacciones

Sin transacciones, las operaciones pueden quedar a medias:

  • dinero que desaparece,
  • pedidos que se crean sin productos,
  • usuarios registrados sin contraseña.

Con transacciones, el sistema siempre elige entre dos estados:

✅ todo correcto — ❌ nada guardado.

Nada “a medio camino”.


Resumen

  • Usa BEGIN y COMMIT para agrupar consultas en una transacción.
  • Si algo sale mal, ROLLBACK revierte todos los cambios.
  • Las bases de datos confiables cumplen las reglas ACID: atomicidad, consistencia, aislamiento y durabilidad.

Materiales adicionales

  1. Transacción / PostgreSQL (en inglés)
  2. ACID / Wikipedia
  3. Aislamiento (ACID) / Wikipedia

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY