TRANSACTION : confirmation, annulation
transactions : début transactionSET TRANSACTION SAVEPOINT annulerROLLBACK fin transactionCOMMIT
1.SET TRANSACTION READ ONLY 2.SET TRANSACTION READ WRITE 3.SET TRANSACTION USE ROLLBACK SEGMENT segment FACULTATIF : début de transaction implicite : 1 ère instruction SQL exécutable qui suit une connexion à la base fin de transaction précédente (commit, rollback) après instruction du LDD (commit implicite après chaque inst. du LDD)
nom d'un point de sauvegarde de la trans. nom unique au sein de la transaction, ( si le nom existait déjà, le 1 er savepoint est écrasé ) SAVEPOINT savepoint
finit la transaction courante, défait toutes les inst. de la trans. courante, supprime tous les points de sauvegarde de la transaction libère les verrous de la transaction ROLLBACK implicite si sortie anormale de la session ROLLBACK
défait toutes les inst. qui suivent le point de sauvegarde, supprime tous les points de sauvegarde postérieurs à celui donné libère les verrous acquis après le point de sauvegarde donné ROLLBACK TO [ SAVEPOINT ] savepoint
finit la transaction courante, tous les changements sont permanents et deviennent visibles aux autres utilisateurs supprime tous les points de sauvegarde libère les verrous COMMIT implicite avant et après chaque instruction du LDD sortie normale de la session de travail (exit) COMMIT
sqlplus toto/titi SQL > insert … SQL > create table … SQL > delete … SQL > commit … SQL > insert … SQL > savepoint save1 SQL > update … SQL > rollback to save1 SQL > update … SQL > exit transaction 1 transaction 2 transaction 3 transaction 4
AUTOCOMMIT sous SQL*Plus, variable AUTOCOMMIT SET AUTOCOMMIT OFF : par défaut SET AUTOCOMMIT ON : un COMMIT suit toutes les modifications ROLLBACK n'a plus d'effet