Transacciones · guía rápida

COMMIT

Confirma una transacción solo después de revisar su alcance: COMMIT conserva los cambios, pero no comprueba que sean correctos.

Lectura: 6–8 minEjemplo paso a pasoPráctica con pistas
Contenido de esta guía

Qué significa

COMMIT termina correctamente la transacción actual y confirma sus cambios. Después de esa confirmación, un ROLLBACK normal ya no puede deshacer las operaciones de esa transacción.

  • Abre una transacción explícita.
  • Ejecuta cambios con condiciones precisas.
  • Revisa el resultado antes de confirmar.

COMMIT es una decisión, no una validación

Una transacción agrupa operaciones, pero no decide si la lógica es correcta. COMMIT conserva exactamente lo que se haya ejecutado, incluso una actualización demasiado amplia. La seguridad procede de limitar el alcance, comprobar las filas afectadas y confirmar solo cuando el resultado coincide con la intención.

Secuencia segura para practicar: BEGIN → cambio → consulta de comprobación → COMMIT o ROLLBACK.

Sintaxis básica

Estructura
BEGIN;
-- una o varias operaciones relacionadas
COMMIT;

Ejemplo guiado con el pedido 102

Estado inicial
idestadototal
102pendiente49.50
SQL
BEGIN;

UPDATE pedidos
SET estado = 'enviado'
WHERE id = 102;

SELECT id, estado, total
FROM pedidos
WHERE id = 102;

COMMIT;
Estado después de confirmar
idestadototal
102enviado49.50

Cómo funciona

  1. BEGIN abre la unidad de trabajo.
  2. El WHERE limita el cambio al pedido 102.
  3. El SELECT muestra el estado provisional antes de decidir.
  4. COMMIT confirma la transacción; el total no cambia.

Error frecuente

Confirmar una actualización sin comprobar su alcance

Consulta peligrosa
BEGIN;
UPDATE pedidos SET estado = 'enviado';
COMMIT;

La transacción no añade el WHERE que falta. Esta secuencia cambia todos los pedidos y después confirma el resultado. Antes de ejecutar COMMIT, revisa la condición, el número de filas afectadas y una muestra de los valores.

Comprueba lo aprendido

Básica · apoyo graduado

Confirma un cambio controlado

Cambia el pedido 105 de “pendiente” a “enviado”, consulta la fila y confirma la transacción.

Autocommit y diferencias entre motores

Los motores y clientes suelen usar autocommit fuera de una transacción explícita, pero los detalles cambian. PostgreSQL y SQLite admiten COMMIT; SQLite también acepta END TRANSACTION y no permite anidar bloques BEGIN...COMMIT de forma directa. MySQL documenta sentencias DDL que provocan confirmaciones implícitas. No presupongas que una operación de esquema puede deshacerse igual en todos los motores y no confundas transacciones anidadas con SAVEPOINT.

Qué debes recordar

  • COMMIT confirma la transacción actual.
  • No corrige una sentencia peligrosa ni valida reglas de negocio.
  • Después de confirmar, un ROLLBACK normal no recupera esos cambios.
  • Revisa autocommit, DDL y anidamiento en el motor que utilizas.

Conceptos relacionados

Fuentes técnicas consultadas

El cierre de transacciones, el modo autocommit y las confirmaciones implícitas se verificaron en la documentación oficial de cada motor.