Structured Query Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 244:
 
=== La transazione ===
Le istruzioni di DML Insert, Update, Replace e Delete, se poste all'interno di una transazione, non sono irreversibili e possono essere annullate nel caso ci si renda conto che non sono state applicate in modo corretto.
 
Una transazione è un blocco di istruzioni che sono strettamente correlate tra loro. Nel caso siin verifichicui unper errorequalsiasi motivo (siaun essoerrore nelinterno programmaal oppureDBMS, dovutoun aderrore unnelle problemaistruzioni esternoSQL, perun esempioerrore se ildi sistema) siuna blocca)delle istruzioni non arrivi a compimento, l'intera transazione verrà annullata. soloSi ldice quindi che una transazione è un'ultimaoperazione istruzione''atomica'', maossia l'interanon transazione.è Indivisibile: talse modonon siviene eseguita interamente, non verrà eseguita affatto. Questo è certiuno chedegli strumenti più utilizzati per garantire l'integrità dei dati verrà garantita.
 
Fino a quando una transazione non ha esito positivo, le modifiche che apporta sono visibili solo per la sessione che ha avviato la transazione. A seconda nel livello di isolamento gli altri utenti potranno accedere a una versione più vecchia dei dati, oppure essere messi in attesa fino al termine della transazione.
 
Non tutti i DBMS supportano le transazioni, mentre altri le supportano solo in determinate condizioni (ad esempio in MySQL sono supportate solo per alcuni tipi di tabelle). Inoltre il DBMS può limitare le transazioni ad un sottoinsieme dell'SQL (ad esempio, in MySQL, se si lancia un comando DDL la transazione corrente termina).
 
==== Begin Transaction ====