Qué significa
COMMIT marca como aceptada la unidad de trabajo actual. Después de confirmarla, los cambios de esa transacción pasan a formar parte del estado persistente de la base de datos y ya no pueden revertirse con un ROLLBACK de esa misma transacción.
Qué problema resuelve
Se utiliza cuando varias operaciones relacionadas deben tratarse como un único cambio. Primero se inicia la transacción, después se ejecutan y revisan las sentencias, y solo cuando el resultado es correcto se confirma. COMMIT no comprueba que la lógica sea buena: confirma exactamente lo que hayas ejecutado.
Apréndelo en contexto: este término se relaciona directamente con Transacciones, COMMIT y ROLLBACK.
Sintaxis básica
BEGIN;
-- una o varias operaciones
COMMIT;Ejemplo guiado
| id | estado | total |
|---|---|---|
| 102 | pendiente | 189 |
Lee primero la consulta e intenta predecir el resultado:
BEGIN;
UPDATE pedidos
SET estado = 'enviado'
WHERE id = 102;
SELECT id, estado, total
FROM pedidos
WHERE id = 102;
COMMIT;| id | estado | total |
|---|---|---|
| 102 | enviado | 189 |
Qué ocurre paso a paso
BEGINabre una transacción explícita.UPDATEcambia únicamente el pedido 102 porque incluye unWHEREespecífico.- El
SELECTpermite revisar el dato antes de hacerlo permanente. COMMITconfirma los cambios pendientes. Si la revisión fuera incorrecta, debería utilizarseROLLBACKen lugar de confirmar.
Error frecuente
Pensar que COMMIT convierte una consulta peligrosa en segura
BEGIN;
UPDATE pedidos SET estado = 'enviado';
COMMIT;La transacción no corrige la ausencia de WHERE. Esta secuencia confirma el cambio sobre todas las filas. La seguridad procede de revisar el alcance, comprobar el número de filas y confirmar solo cuando el resultado coincide con la intención.
Mini práctica
Aplica el concepto
Escribe el orden de las cuatro acciones necesarias para cambiar el pedido 104 a pendiente, revisar el resultado y confirmarlo.
Solución razonada
BEGIN;
UPDATE pedidos SET estado = 'pendiente' WHERE id = 104;
SELECT id, estado FROM pedidos WHERE id = 104;
COMMIT;El SELECT intermedio no es obligatorio para la sintaxis, pero sí constituye una práctica de seguridad útil durante el aprendizaje y en operaciones manuales. La aplicación real también debería comprobar filas afectadas y tratar errores.
Compatibilidad y matices
La idea de confirmar una transacción es común, pero la forma de iniciarla y el comportamiento de autocommit varían. PostgreSQL acepta BEGIN y COMMIT. En MySQL, determinadas sentencias de definición pueden provocar commits implícitos, por lo que no debe suponerse que cualquier operación puede revertirse del mismo modo. Revisa siempre el motor y el tipo de tabla utilizados.
Recuerda
- Confirma los cambios pendientes de la transacción actual para que dejen de poder deshacerse con un ROLLBACK normal.
- Comprueba siempre los datos de entrada y el resultado esperado.
- Cuando el comportamiento dependa del motor, consulta su documentación oficial.
Conceptos relacionados
Fuentes técnicas consultadas
Estas fuentes se utilizaron para comprobar la definición y los matices técnicos. El contenido de esta página está redactado de forma original para el aprendizaje.