Quando si lavora con transazioni di database, quali sono le possibili condizioni (se presenti) che causerebbero il fallimento dell'affermazione finale COMMIT
in una transazione, presumendo che tutte le istruzioni all'interno della transazione siano già state eseguite senza problemi?Una dichiarazione COMMIT (in SQL) può mai fallire? Come?
Per esempio ... Diciamo che avete un po 'two-phase o three-phase commit protocol dove si fa un mucchio di dichiarazioni, quindi attendere qualche processo maestro per dirvi quando è ok per commettere finalmente la transazione:
-- <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;
Se il codice raggiunge la dichiarazione COMMIT finale e lo invia al DBMS, è possibile ottenere un errore (problema di unicità, database completo, ecc.) In tale istruzione? Quali errori? Perché? Come appaiono? Varia a seconda di quale DBMS viene eseguito?
Se questo è compito, taggalo come tale. –
@Bob Jarvis: Wow. Grazie per avermi fatto sentire molto più giovane! – Russ
compiti a casa non è una funzione dell'età. :-) –