logo

SQL-TRANSAKSJONER

Transaksjoner grupperer et sett med oppgaver i en enkelt utførelsesenhet. Hver transaksjon begynner med en bestemt jobb og slutter når alle oppgavene i gruppen er fullført. Hvis noen av oppgavene mislykkes, mislykkes transaksjonen. Derfor har en transaksjon bare to resultater: suksess eller feil .

Eksempel på en transaksjon for å overføre 0 fra konto A til konto B:

1. read(A) 2. A:= A – 150 3. write(A) 4. read(B) 5. B:= B + 150 6. write(B)>

Ufullstendige trinn resulterer i mislykket transaksjon. En databasetransaksjon må per definisjon være atomær, konsistent, isolert og holdbar.
Disse er populært kjent som SYRE egenskaper. Disse egenskapene kan sikre samtidig utførelse av flere transaksjoner uten konflikt.



Transaksjonens egenskaper

  • Atomitet: Utfallet av en transaksjon kan enten være helt vellykket eller helt mislykket. Hele transaksjonen må rulles tilbake hvis en del av den mislykkes.
  • Konsistens: Transaksjoner opprettholder integritetsbegrensninger ved å flytte databasen fra en gyldig tilstand til en annen.
  • Isolering: Samtidige transaksjoner er isolert fra hverandre, noe som sikrer nøyaktigheten til dataene.
  • Varighet: Når en transaksjon er forpliktet, forblir modifikasjonene i kraft selv i tilfelle systemfeil.

Hvordan implementere Transaction Control Command ved hjelp av SQL?

Følgende kommandoer brukes til å kontrollere transaksjoner. Det er viktig å merke seg at disse setningene ikke kan brukes mens du oppretter tabeller og bare brukes med DML-kommandoer som f. SETT INN , OPPDATER , og SLETT .

BEGIN TRANSACTION Kommando

Den indikerer startpunktet for en eksplisitt eller lokal transaksjon.

Syntaks:

BEGIN TRANSACTION transaksjonsnavn ;

SET TRANSACTION Kommando

Verdiene for egenskapene til den gjeldende transaksjonen, for eksempel transaksjonsisolasjonsnivå og tilgangsmodus, angis ved å bruke SET TRANSACTION Statement i MySQL.

Syntaks:

innsettingssortering

SETT TRANSAKSJON [ LES SKRIV | LES BARE ];

COMMIT kommando

Hvis alt er i orden med alle utsagn i en enkelt transaksjon, blir alle endringer registrert sammen i databasen kalt engasjert . COMMIT-kommandoen lagrer alle transaksjonene til databasen siden den siste COMMIT- eller ROLLBACK-kommandoen.

Syntaks:

BEGÅ;

Eksempel:

Eksempeltabell 1

produksjon

produksjon

k-nn algoritme

Følgende er et eksempel som ville slette de postene fra tabellen som har alder = 20 og deretter COMMIT endringene i databasen.

Spørsmål

DELETE FROM Student WHERE AGE = 20; COMMIT;>

Produksjon

Dermed vil to rader fra tabellen bli slettet og SELECT-setningen vil se slik ut,

produksjon

produksjon

ROLLBACK-kommando

Hvis det oppstår en feil med noen av de grupperte SQL-setningene, må alle endringer avbrytes. Prosessen med å reversere endringer kalles tilbakerulling . Denne kommandoen kan bare brukes til å angre transaksjoner siden den siste COMMIT- eller ROLLBACK-kommandoen ble utstedt.

Syntaks for ROLLBACK-kommandoen:

RULLING TILBAKE;

Eksempel:

Fra eksemplet ovenfor Eksempeltabell 1 ,
Slett de postene fra tabellen som har alder = 20, og RULL TILBAKE endringene i databasen.

Spørsmål

DELETE FROM Student WHERE AGE = 20; ROLLBACK;>

Produksjon

produksjon

produksjon

SAVEPOINT-kommando

SAVEPOINT oppretter poeng innenfor gruppene av transaksjoner som skal RULLES TILBAKE.
Et SAVEPOINT er et punkt i en transaksjon der du kan rulle transaksjonen tilbake til et bestemt punkt uten å rulle tilbake hele transaksjonen.

Syntaks for Savepoint-kommando:

SAVEPOINT SAVEPOINT_NAME;

Denne kommandoen brukes kun i opprettelsen av SAVEPOINT blant alle transaksjonene.
Generelt brukes ROLLBACK for å angre en gruppe transaksjoner.

j-knappen

Syntaks for å rulle tilbake til Savepoint Command:

TILBAKE TIL SAVEPOINT_NAME;

du kan RULLE TILBAKE til et hvilket som helst SAVEPOINT når som helst for å returnere de riktige dataene til sin opprinnelige tilstand.

Eksempel:

Fra eksemplet ovenfor Eksempeltabell 1 , Slett de postene fra tabellen som har alder = 20, og RULL TILBAKE endringene i databasen ved å beholde lagringspunkter.

Spørsmål

SAVEPOINT SP1; //Savepoint created. DELETE FROM Student WHERE AGE = 20; //deleted SAVEPOINT SP2; //Savepoint created.>

Her opprettes SP1 først SAVEPOINT før sletting. I dette eksemplet har en sletting funnet sted.
Etter sletting opprettes SAVEPOINT SP2 igjen.

Produksjon

produksjon

produksjon

Sletting har funnet sted, la oss anta at du har ombestemt deg og bestemt deg for å RULLE TILBAKE til SAVEPOINT som du identifiserte som SP1 som er før sletting.
sletting er angret av denne uttalelsen.

Spørsmål

ROLLBACK TO SP1; //Rollback completed>

Produksjon

produksjon

produksjon

RELEASE SAVEPOINT-kommando

Denne kommandoen brukes til å fjerne et SAVEPOINT som du har opprettet.

Syntaks:

hvordan returnere en array java

FRIGJØR SAVEPOINT SAVEPOINT_NAME

Når et SAVEPOINT har blitt frigitt, kan du ikke lenger bruke ROLLBACK-kommandoen til å angre transaksjoner utført siden siste SAVEPOINT.
Den brukes til å starte en databasetransaksjon og brukes til å spesifisere egenskapene til transaksjonen som følger.

Konklusjon

  • SQL-setninger er gruppert sammen ved hjelp av transaksjoner.
  • De lover at enten blir alle endringer gjort eller ingen i det hele tatt.
  • Pålitelighet er sikret av SYRE-kvalitetene atomitet, konsistens, isolasjon og holdbarhet.
  • Start en transaksjon med BEGIN TRANSACTION, og fullfør den med COMMIT eller ROLLBACK for å fullføre eller angre endringer.