Rullst AcademyRullst Academy/Lección
Bases de datos y SQL I · Lección 09 / 12

Transacciones y decisiones

Explicar BEGIN, COMMIT y ROLLBACK y probar fallos.

Rutas de aprendizaje18 min

Vamos a descubrir juntos

  1. 1

    Una transacción agrupa cambios. BEGIN inicia, COMMIT confirma y ROLLBACK deshace la abierta. Una devolución y otro registro pueden formar una unidad. Consulta antes y después.

  2. 2

    Un fallo de restricción puede deshacer solo la instrucción fallida y dejar abierta la transacción. No supongas que todo error revierte instrucciones anteriores. El runner captura y hace rollback si hace falta; la prueba lo verifica.

  3. 3

    El ejemplo muestra cambio provisional y estado restaurado. Compara con COMMIT. La base en memoria desaparece al salir: confirmar y persistir en archivo son decisiones distintas.

  4. 4

    Varios usuarios requieren concurrencia, bloqueos y reglas. El kit no implementa un servicio concurrente. Explica límites antes de adaptarlo al uso real.

Tu mesa de datos

Nuestro modelo: kits.id ← loans.kit_id. Un material puede tener varios préstamos; nombres pueden repetirse. Solo usamos datos ficticios.

Predice antes de abrir la referencia. Muestra salida verificada del ejemplo original, no ejecuta tu texto. Ejecuta cambios con el kit en tu computadora.

-- Transacciones y decisiones
BEGIN;
UPDATE loans SET returned='2026-01-03' WHERE id=3;
SELECT id, returned FROM loans WHERE id=3;
ROLLBACK;
SELECT id, returned FROM loans WHERE id=3;
Comparar con la salida de referencia
[
  {
    "columns": [
      "id",
      "returned"
    ],
    "rows": [
      [
        3,
        "2026-01-03"
      ]
    ]
  },
  {
    "columns": [
      "id",
      "returned"
    ],
    "rows": [
      [
        3,
        null
      ]
    ]
  }
]

Ejecuta el comando en la carpeta extraída. Usa python3 en macOS/Ubuntu o py si es tu launcher Windows. Cada ejecución empieza en memoria; lee README.md para guardar archivos y practicar recuperación.

python lab.py run lesson.sql
Mis archivos y GitHub

El editor guarda tu borrador .sql en este navegador. Descárgalo y sustituye lesson.sql en el kit; en el proyecto final, availability.sql. El ZIP conserva el modelo original. GitHub envía solo el archivo confirmado, sin ejecutar SQL ni enviar la base.

Enlaces oficiales y siguiente paso

✦
TU MISIÓN

Explicar BEGIN, COMMIT y ROLLBACK y probar fallos.

Ahora te toca

Taller de descubrimientos

Lee, predice y comprueba

Explicar BEGIN, COMMIT y ROLLBACK y probar fallos.
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

¿Un error siempre revierte toda la transacción SQLite?

Necesito una pista

Un fallo de restricción puede deshacer solo la instrucción fallida y dejar abierta la transacción. No supongas que todo error revierte instrucciones anteriores. El runner captura y hace rollback si hace falta; la prueba lo verifica.

Cargando tu camino…

Llévatelo contigo

Ejecuta la prueba de fallo. Explica por qué stock vuelve a 3 cuando otra instrucción viola la FK.

A tu ritmo

Mis archivos y GitHub

Cada lección puede convertirse en un registro propio: código, notas o un plan de práctica. Guardar un archivo en GitHub es opcional y no cambia tus XP.

Manual del alumno

El editor y las descargas se abren cuando esta lección esté disponible para tu cuenta. Revisa el acceso indicado abajo o vuelve al mapa de la ruta.

Comprobando tu acceso a esta lección…

Rullstpetbot

La IA puede equivocarse. Consulta el material de la lección.