PL /SQL Transactions

En database transaksjonen
er en atomarbeidsenhet som kan bestå av ett eller flere relaterte SQL-setninger. Det kalles atom fordi databasen endringer forårsaket av SQL-setninger som utgjør en transaksjon kan kollektivt enten være engasjert, dvs. gjort permanent i databasen eller rullet tilbake (ugjort) fra databasen.

En vellykket utført SQL-setning og en engasjert transaksjonen ikke er samme. Selv om en SQL-setning er utført på riktig måte, med mindre transaksjonen inneholder uttalelsen er begått, det kan bli rullet tilbake og alle endringer gjort av uttalelsen (e) kan angres.

Starte en Avslutte et Transaksjons

En transaksjon har en begynnelse til og en end
. En transaksjon starter når en av følgende hendelser finne sted:

Den første SQL-setning er utført etter tilkobling til databasen

Ved hver ny SQL-setning. . utstedt etter en transaksjon er gjennomført

En transaksjon slutter når en av følgende hendelser finne sted:

En COMMIT eller ROLLBACK avgis <. .no>

En DDL uttalelse, som CREATE TABLE-setningen, er utstedt; fordi i så fall en COMMIT utføres automatisk

En DCL utsagn, for eksempel en GRANT uttalelse, er utstedt.; fordi i så fall en COMMIT utføres automatisk.

Bruker kobler seg fra databasen.

Bruker utganger fra SQL * PLUS ved å utstede EXIT kommando, en COMMIT utføres automatisk

SQL * Plus avsluttes unormalt, en ROLLBACK utføres automatisk

En DML utsagn svikter..; i så fall en ROLLBACK utføres automatisk for angre at DML utsagn.

Begår en transaksjons

En transaksjon er gjort permanent ved å utstede SQL kommando COMMIT. Den generelle syntaksen for COMMIT kommandoen er:
COMMIT;

For eksempel, etter INSERT INTO KUNDER (ID, navn, alder, adresse, lønn) VALUES (1, 'Ramesh', 32 'Ahmedabad' , 2000.00), setter inn kunder (ID, navn, alder, adresse, lønn) VERDIER (2, 'Khilan', 25 'Delhi', 1500.00); INSERT INTO KUNDER (ID, navn, alder, adresse, lønn) VERDIER (3, 'Kaushik', 23 'Kota', 2000.00); INSERT INTO KUNDER (ID, navn, alder, adresse, LØNN) VALUES (4, 'Chaitali', 25 'Mumbai', 6500.00); INSERT til kunder (ID, navn, alder, adresse, lønn) VALUES (5 'Hardik', 27 'Bhopal', 8500.00); INSERT til kunder (ID, navn, alder, adresse, lønn) VALUES (6, 'Komal', 22 'MP', 4500.00); COMMIT;
Rolling Tilbake Transaksjoner

Endringer i databasen uten COMMIT kan angres ved hjelp av ROLLBACK kommando

Den generelle syntaksen for ROLLBACK. kommandoen er:
ROLLBACK [TO SAVE < savepoint_name >];

Når en transaksjon er avbrutt på grunn av noen enestående situasjon, som systemfeil, hele transaksjonen siden en forplikte blir automatisk tilbakestilt. Hvis du ikke bruker lagringspunkt
, deretter bruker du bare følgende uttalelse til å tilbakeføre alle endringene:
ROLLBACK;
lagringspunkter

lagringspunkter er liksom markører som hjelper i splitting en lang transaksjon i mindre enheter ved å sette noen sjekkpunkter. Ved å sette lagringspunkter innenfor en lang transaksjon, kan du rulle tilbake til en kontrollpost om nødvendig. Dette gjøres ved å utstede SAVE kommandoen

Den generelle syntaksen for SAVE kommandoen er:.
SAVE < savepoint_name >;

For eksempel:
INSERT INTO KUNDER (ID, navn, alder, adresse, lønn) VALUES (7, 'Rajnish', 27 'HP', 9500.00); INSERT INTO KUNDER (ID, navn, alder, adresse, LØNN) VALUES (8, 'Riddhi', 21, WB, 4500.00); SAVE SAV1; UPDATE CUSTOMERSSET LØNN = LØNN + 1 000, ROLLBACK TO SAV1; UPDATE CUSTOMERSSET LØNN = LØNN + 1000WHERE ID = 7; UPDATE CUSTOMERSSET LØNN = LØNN + 1000WHERE ID = 8; COMMIT;

Her ROLLBACK TO SAV1;
uttalelse ruller tilbake endringene opp til et punkt, hvor du hadde merket lagringspunkt SAV1
og etter at nye endringene vil begynne

Automatisk Transaksjonskontroll

For å utføre en COMMIT automatisk når en INSERT, UPDATE eller DELETE kommando er utført, kan du sette autocommit miljøvariabelen som:.
SET autocommit PÅ;

Du kan skru av automatisk begå modus ved hjelp av følgende kommando:
SET autocommit AV;