logo

SQL-TRANSAKTIONER

Transaktioner grupperer et sæt opgaver i en enkelt udførelsesenhed. Hver transaktion begynder med et bestemt job og slutter, når alle opgaverne i gruppen er gennemført. Hvis nogen af ​​opgaverne mislykkes, mislykkes transaktionen. Derfor har en transaktion kun to resultater: succes eller fiasko .

Eksempel på en transaktion for at 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)>

Ufuldstændige trin resulterer i, at transaktionen mislykkes. En databasetransaktion skal pr. definition være atomart, konsistent, isoleret og holdbar.
Disse er populært kendt som SYRE ejendomme. Disse egenskaber kan sikre samtidig udførelse af flere transaktioner uden konflikt.



Transaktionens egenskaber

  • Atomicitet: Resultatet af en transaktion kan enten være fuldstændig vellykket eller fuldstændig mislykket. Hele transaktionen skal rulles tilbage, hvis en del af den mislykkes.
  • Konsistens: Transaktioner opretholder integritetsbegrænsninger ved at flytte databasen fra en gyldig tilstand til en anden.
  • Isolation: Samtidige transaktioner er isoleret fra hinanden, hvilket sikrer nøjagtigheden af ​​dataene.
  • Holdbarhed: Når først en transaktion er begået, forbliver dens ændringer i kraft, selv i tilfælde af en systemfejl.

Hvordan implementerer man transaktionskontrolkommando ved hjælp af SQL?

Følgende kommandoer bruges til at kontrollere transaktioner. Det er vigtigt at bemærke, at disse udsagn ikke kan bruges under oprettelse af tabeller og kun bruges med DML-kommandoer som f.eks. INDSÆT , OPDATERING , og SLET .

BEGIN TRANSACTION Kommando

Det angiver startpunktet for en eksplicit eller lokal transaktion.

Syntaks:

BEGIN TRANSACTION transaktionsnavn ;

SET TRANSACTION Kommando

Værdierne for egenskaberne for den aktuelle transaktion, såsom transaktionsisolationsniveauet og adgangstilstanden, indstilles ved hjælp af SET TRANSACTION Statement i MySQL.

Syntaks:

indsættelsessortering

SÆT TRANSAKTION [ LÆS SKRIV | LÆS KUN ];

COMMIT kommando

Hvis alt er i orden med alle udsagn inden for en enkelt transaktion, bliver alle ændringer registreret sammen i databasen kaldet engageret . COMMIT-kommandoen gemmer alle transaktioner i databasen siden den sidste COMMIT- eller ROLLBACK-kommando.

Syntaks:

BEGÅ;

Eksempel:

Eksempeltabel 1

produktion

produktion

hvad er hive

Følgende er et eksempel, som ville slette de poster fra tabellen, som har alder = 20 og derefter COMMIT ændringerne i databasen.

Forespørgsel

DELETE FROM Student WHERE AGE = 20; COMMIT;>

Produktion

Således ville to rækker fra tabellen blive slettet, og SELECT-sætningen ville se ud som,

produktion

produktion

ROLLBACK kommando

Hvis der opstår en fejl med nogen af ​​de grupperede SQL-sætninger, skal alle ændringer afbrydes. Processen med at vende ændringer kaldes tilbagerulning . Denne kommando kan kun bruges til at fortryde transaktioner siden den sidste COMMIT- eller ROLLBACK-kommando blev udstedt.

Syntaks for ROLLBACK kommando:

TILBAGE TILBAGE;

Eksempel:

Fra ovenstående eksempel Eksempeltabel 1 ,
Slet de poster fra tabellen, som har alder = 20, og RULLER derefter ændringerne i databasen.

Forespørgsel

DELETE FROM Student WHERE AGE = 20; ROLLBACK;>

Produktion

produktion

produktion

SAVEPOINT kommando

SAVEPOINT opretter punkter inden for grupperne af transaktioner, hvor der skal TILBAGE.
Et SAVEPOINT er et punkt i en transaktion, hvor du kan rulle transaktionen tilbage til et bestemt punkt uden at rulle hele transaktionen tilbage.

Syntaks for kommandoen Savepoint:

SAVEPOINT SAVEPOINT_NAME;

Denne kommando bruges kun til oprettelse af SAVEPOINT blandt alle transaktioner.
Generelt bruges ROLLBACK til at fortryde en gruppe af transaktioner.

sql ddl kommandoer

Syntaks for at rulle tilbage til Savepoint Command:

TILBAGE TIL SAVEPOINT_NAME;

du kan RULLE TILBAGE til ethvert SAVEPOINT når som helst for at returnere de relevante data til deres oprindelige tilstand.

Eksempel:

Fra ovenstående eksempel Eksempeltabel 1 , Slet de poster fra tabellen, som har alder = 20, og RULLER derefter ændringerne i databasen tilbage ved at beholde Savepoints.

Forespørgsel

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

Her oprettes SP1 først SAVEPOINT før sletning. I dette eksempel er der sket en sletning.
Efter sletning oprettes SAVEPOINT SP2 igen.

Produktion

produktion

produktion

Sletningen er fundet sted, lad os antage, at du har ombestemt dig og besluttet at RULLE TILBAGE til det SAVEPOINT, som du identificerede som SP1, som er før sletningen.
sletning fortrydes af denne erklæring.

Forespørgsel

ROLLBACK TO SP1; //Rollback completed>

Produktion

produktion

produktion

RELEASE SAVEPOINT Kommando

Denne kommando bruges til at fjerne et SAVEPOINT, som du har oprettet.

Syntaks:

java konverter char til streng

FRIGIV SAVEPOINT SAVEPOINT_NAME

Når et SAVEPOINT er blevet frigivet, kan du ikke længere bruge ROLLBACK-kommandoen til at fortryde transaktioner udført siden sidste SAVEPOINT.
Det bruges til at starte en databasetransaktion og bruges til at specificere karakteristika for den efterfølgende transaktion.

Konklusion

  • SQL-sætninger er grupperet sammen ved hjælp af transaktioner.
  • De lover, at enten bliver alle ændringer foretaget eller slet ingen.
  • Pålidelighed sikres af SYRE-kvaliteterne atomicitet, konsistens, isolation og holdbarhed.
  • Start en transaktion med BEGIN TRANSACTION, og afslut den med COMMIT eller ROLLBACK for at fuldføre eller fortryde ændringer.