Al trabajar con transacciones de bases de datos, ¿cuáles son las condiciones posibles (si las hay) que harían que falle la declaración final COMMIT
en una transacción, suponiendo que todas las instrucciones dentro de la transacción ya se hayan ejecutado sin problemas?¿Puede fallar alguna vez una instrucción COMMIT (en SQL)? ¿Cómo?
Por ejemplo ... digamos que usted tiene un poco de two-phase o three-phase commit protocol en el que hacer un montón de declaraciones, a continuación, esperar algún proceso maestro que le diga cuando está bien para cometer finalmente la transacción:
-- <initial handshaking stuff>
START TRANSACTION;
-- <Execute a bunch of SQL statements>
-- <Inform master of readiness to commit>
-- <Time passes... background transactions happening while we wait>
-- <Receive approval to commit from master (finally!)>
COMMIT;
Si su código llega a la sentencia final de COMMIT y lo envía a su DBMS, ¿puede alguna vez obtener un error (problema de exclusividad, base de datos llena, etc.) en esa declaración? Que errores? ¿Por qué? ¿Cómo aparecen? ¿Varía dependiendo de qué DBMS ejecutas?
Si esto es tarea, por favor marqúelo como tal. –
@Bob Jarvis: Wow. ¡Gracias por hacerme sentir mucho más joven! – Russ
la tarea no es una función de la edad. :-) –