En transaksjon er en enhet av arbeidet som utføres mot en database. Transaksjoner er enheter eller sekvenser av arbeid utført i en logisk rekkefølge, enten i en manuell mote av en bruker eller automatisk etter noen form for et databaseprogram.
En transaksjon er utbredelsen av en eller flere endringer i databasen . For eksempel, hvis du oppretter en post eller oppdatere en post eller slette en post fra bordet, så du utfører transaksjoner på bordet. Det er viktig å kontrollere transaksjoner for å sikre dataintegritet og å håndtere databasefeil.
I praksis vil du klubbens mange SQLite spørringer i en gruppe, og du vil utføre alle av dem sammen som en del av en transaksjon.
< h2> Egenskaper til Transactions:
Transaksjoner har følgende fire standard egenskaper, vanligvis referert til av forkortelsen ACID:
atomicity:
sikrer at alle operasjoner innen arbeidet enheten er fullført; ellers, er transaksjonen avbrutt på det punktet av svikt og tidligere operasjoner er rullet tilbake til sin tidligere tilstand
Konsistens:.
sikrer at databasen skal endres tilstander på en vellykket forpliktet transaksjon
Isolasjon:..
gjør transaksjoner til å operere uavhengig av og gjennomsiktig til hverandre
< b> Holdbarhet:
sikrer at resultatet eller effekten av en engasjert transaksjon vedvarer i tilfelle av en systemfeil
Transaksjonskontroll:.
Det er følgende kommandoer som brukes til å kontrollere transaksjoner:
BEGIN TRANSAKSJONER:
å starte en transaksjon
COMMIT.
til lagre endringene, alternativt kan du bruke END TRANSAKSJONER
kommando
ROLLBACK:..
til å tilbakeføre endringene
Transaksjonskontrollkommandoer brukes kun med DML kommandoer INSERT, UPDATE og DELETE. De kan ikke brukes mens du oppretter tabeller eller slippe dem fordi disse operasjonene blir automatisk begått i databasen
Den BEGIN TRANSAKSJONER Command:.
Transaksjoner kan startes ved hjelp BEGIN transaksjon eller rett og slett BEGIN kommando. Slike transaksjoner vanligvis vedvare inntil neste COMMIT eller ROLLBACK kommando støtt. Men en transaksjon vil også ROLLBACK hvis databasen er stengt, eller hvis det oppstår en feil. Følgende er enkel syntaks for å starte en transaksjon:
BEGIN, eller BEGIN TRANSAKSJONER;
Kommandoen commit:
Kommandoen commit er transaksjons kommandoen brukes til å lagre endringene som påberopes av en transaksjon til databasen .
COMMIT kommandoen lagrer alle transaksjoner til databasen siden forrige COMMIT eller ROLLBACK kommando
Syntaksen for COMMIT kommando er som følger:.
COMMIT; orEND TRANSAKSJONER;
rollback Command:
rollback kommandoen er transaksjons kommandoen brukes til å angre transaksjoner som ikke allerede er lagret i databasen
rollback kommandoen kan bare brukes til å angre transaksjoner siden sist. COMMIT eller ROLLBACK kommando ble gitt
Syntaksen for ROLLBACK kommando er som følger:
ROLLBACK;
Eksempel:.
Tenk COMPANY bordet er å ha følgende poster:
ID Navn Alder ADRESSE LØNN ---------- ---------- ---------- ---------- ------ ---- en Paul 32 California 20000,02 Allen 25 Texas 15000,03 Teddy 23 Norge 20000,04 Mark 25 Rich-Mond 65000,05 David 27 Texas 85000,06 Kim 22 Sør-Hall 45000,07 James 24 Houston 10000,0
Nå, la oss starte en transaksjon og slette poster fra bordet med alder = 25 og til slutt vi bruker ROLLBACK kommando å angre alle endringer
sqlite >.; BEGIN; sqlite > DELETE fra selskap der alder = 25; sqlite > ROLLBACK;
Hvis du vil sjekke COMPANY tabellen fremdeles har følgende poster:
ID Navn Alder ADRESSE LØNN ---------- ---------- ---- ------ ---------- ---------- 1 Paulus 32 California 20000,02 Allen 25 Texas 15000,03 Teddy 23 Norge 20000,04 Mark 25 Rich-Mond 65000,05 David 27 Texas 85000,06 Kim 22 Sør-Hall 45000,07 James 24 Houston 10000,0
Nå, la oss starte en annen transaksjon og slette poster fra tabellen med alder = 25 og til slutt bruker vi COMMIT-kommandoen til å begå alle endringene
sqlite >.; BEGIN; sqlite > DELETE fra selskap der alder = 25; sqlite > COMMIT;
Hvis du vil sjekke COMPANY tabellen fremdeles har følgende poster:
ID Navn Alder ADRESSE LØNN ---------- ---------- ---- ------ ---------- ---------- 1 Paulus 32 California 20000,03 Teddy 23 Norge 20000,05 David 27 Texas 85000,06 Kim 22 Sør-Hall 45000,07 James 24 Houston 10000,0