Savepoint
Un punto con nombre dentro de una transacción al que se puede volver — sin abortar la transacción entera. Permite deshacer parcialmente: "deshaz solo lo que hice desde el savepoint X, pero conserva el resto". La base de las transacciones anidadas.
Mecánica: SAVEPOINT nombre fija un marcador; ROLLBACK TO SAVEPOINT nombre deshace todo lo posterior pero mantiene viva la transacción; RELEASE SAVEPOINT elimina el marcador. Caso de uso: probar una operación arriesgada dentro de una transacción más larga y revertir solo esa si falla; manejar un error en una suboperación sin perder todo el trabajo hecho; los ORM y drivers usan savepoints para emular "transacciones anidadas" (una transacción interna se convierte en un savepoint). Es estándar SQL, soportado por PostgreSQL, MySQL/InnoDB, Oracle y SQL Server (con su propia sintaxis). Importante en procedimientos y manejo de errores. Se distingue de un rollback completo (que aborta todo). Relacionado con la transacción distribuida y el snapshot MVCC.