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
Orders
tabella. - Un altro processo inserisce una riga nelle
OrderLines
tabella. - Il dump elabora le
OrderLines
tabella. - Un altro processo elimina gli
Orders
eOrderLines
record. - Il dump elabora gli
Orders
tabella.
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.