2011-09-02 17 views

risposta

14

un punto di salvataggio segna un punto che l'operazione corrente può ripristinare. Invece di ripristinare tutte le sue modifiche, può scegliere di ripristinare solo alcune di esse. Ad esempio, si supponga:

  • avviare una transazione,
  • inserto 10 righe in una tabella,
  • impostare un punto di salvataggio,
  • inserire un altro 5 file,
  • rollback al punto di salvataggio,
  • commit la transazione.

Dopo aver eseguito questa operazione, la tabella conterrà le prime 10 righe inserite. Le altre 5 righe saranno state eliminate dal rollback.

L'impostazione di un punto di salvataggio non "salva" alcun dato nel database. Non rende visibili le modifiche del database a qualsiasi altra transazione. Un punto di salvataggio è solo un indicatore a cui la transazione corrente può eseguire il rollback.

3
+0

Questo è sbagliato. Come indicato su [http://docs.oracle.com/](http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html#set_roll_back_savepoints) 'Il metodo Connection.setSavepoint, imposta un punto di salvataggio oggetto all'interno della transazione corrente. Il metodo Connection.rollback è sovraccarico per prendere un argomento Savepoint. –

+3

@ ValentinoDell'Aica: quindi cosa c'è di sbagliato nella mia affermazione? I punti di salvataggio ** sono ** una funzione DBMS. L'API JDBC ti dà semplicemente accesso a quella funzione. Se il DBMS non li supporta, non è possibile utilizzarli da JDBC –

Problemi correlati