Domanda

Sono un po 'confuso dalla documentazione qui. Ho una transazione, che

  1. avviare la transazione
  2. fa alcuni aggiornamenti
  3. fa alcune seleziona
  4. fa alcune ulteriori aggiornamenti
  5. commit

Voglio che i miei seleziona al passo 3 per vedere i risultati di aggiornamenti in fase di 2 , ma voglio essere in grado di ripristinare il tutto.

leggi impegnato sembra implicare che seleziona mostrare solo i dati che è stato commesso, e lettura ripetibile sembra implicare che tutte le seleziona successivi vedranno gli stessi dati come esisteva al momento della prima selezionare - ignorando così i miei aggiornamenti. leggi uncommitted sembra di fare la cosa giusta, ma: "ma potrebbe essere usata una possibile versione precedente di una fila" - anche questo non è accettabile, come i miei seleziona deve vedere il risultato dei miei aggiornamenti.

serializable in realtà la mia unica speranza qui?

sto lavorando fuori la documentazione qui

È stato utile?

Soluzione

i livelli di isolamento delle transazioni descrivono solo l'interazione tra concorrenti transazioni. Con qualsiasi livello di isolamento, roba che avete aggiornato all'interno della stessa transazione verrà aggiornato quando si ri-selezionare da tale operazione.

Il livello di isolamento a destra nel vostro caso sembra essere letto impegnata, in modo da poter rollback in qualsiasi momento e dati UNCOMMITED non è visibile in altre operazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top