Poiché il dump è in un'unica transazione, ottieni una visualizzazione coerente di tutte le tabelle nel database. Questo è probabilmente meglio spiegato da un controesempio. Supponiamo di scaricare un database con due tabelle, Orders e OrderLines
- Inizi il dump senza una singola transazione.
- Un altro processo inserisce una riga negli
Orderstabella. - Un altro processo inserisce una riga nelle
OrderLinestabella. - Il dump elabora le
OrderLinestabella. - Un altro processo elimina gli
OrderseOrderLinesrecord. - Il dump elabora gli
Orderstabella.
In questo esempio, il tuo dump avrebbe le righe per OrderLines , ma non Orders . I dati sarebbero in uno stato incoerente e non riuscirebbero al ripristino se fosse presente una chiave esterna tra gli Orders e OrderLines .
Se l'avessi fatto in una singola transazione, il dump non avrebbe né l'ordine né le righe (ma sarebbe coerente) poiché entrambi sono stati inseriti e poi eliminati dopo l'inizio della transazione.