SQLite -transaksjoner

SQLite -transaksjoner
“Transaksjoner er logisk organiserte blokker eller sekvenser av arbeid som kan gjøres manuelt eller mekanisk av en DBMS. Hvis du oppretter, endrer eller fjerner data fra tabellen, utfører du transaksjoner på tabellen. Å kontrollere transaksjoner er kritisk for å opprettholde dataintegritet og håndtere databaseproblemer.

I SQLite er en transaksjon en gruppe T-SQL-kommandoer som utfører som en unik T-SQL-kommando. Hvis en feil oppstår mens du utfører disse SQLite -kommandoene, vil transaksjonen bli rullet tilbake i sin helhet. Generelt er SQLite i auto-commit-modus, noe som betyr at den automatisk oppretter en transaksjon med hver kommando, behandler den og begår endringene i databasen.

I denne artikkelen vil vi demonstrere hvordan vi skal implementere SQLite -transaksjonen for å sikre dataens integritet og pålitelighet.”

Egenskaper for SQLite -transaksjon

SQLite er en transaksjonsdatabase, som betyr at alle oppdateringer og søk er atomiske, konsistente, isolerte og langvarige (syre). De fire standardfunksjonene som er angitt nedenfor, som ofte er forkortet som syre, er til stede i transaksjoner.

Atomicity: Et enkelt trinn i prosessen kreves fullført med en atomtransaksjon. Den betegner at en modifisering ikke kan deles ned i mindre komponenter. Enten utføres den komplette transaksjonen eller ikke når en transaksjon er i forpliktelsesmodus.

Konsistens: Transaksjoner må garantere at databasen endres fra en legitim stat til den neste. Databasen blir inkonsekvent når en transaksjon initierer og utfører en kommando for å oppdatere data. Databasen må imidlertid forbli konsistent når forpliktelse og tilbakeføring utføres på transaksjonene.

Isolering: Sessionens ventende transaksjon må være segregert fra andre økter. Når en økt initierer en transaksjon og bruker innsatsen eller oppdateringskommandoen for å endre data, er modifikasjonene bare tilgjengelige for gjeldende operasjon og ikke for andre. Endringene som er gjort av andre brukere etter at transaksjonen startet, bør derimot aldri være tydelig for den nåværende brukeren.

Varighet: Hvis en transaksjon er riktig forpliktet, må endringene i databasen være permanent i tilfelle strømbrudd eller et programkrasj. Oppdateringen skal ikke vedvare hvis programmet avsluttes først før transaksjonen er begått.

Hvordan utføre transaksjoner i SQLite?

Anta at vi ønsker å regulere slike transaksjoner for å beholde datakonsistens og håndtere databasesvikt. Vi kan stoppe auto-commit-modus og starte transaksjonene eksplisitt basert på våre behov ved å bruke følgende instruksjoner.

  • BEGYNNE: Dette er poenget der transaksjonen startes.
  • BEGÅ: Med denne terminologien i SQLite vil vi begå transaksjonen, noe som betyr at den vil spare alle modifikasjonene i databasen.
  • Rollback: Transaksjonen som helhet vil bli omgjort.

Merk at bare DML -operasjonsinnsatsen, oppdatering og slett bruk av transaksjonskontrollinstruksjoner. De kan ikke brukes til å trekke ut tabeller siden databasen omgir disse operasjonene omgående.

Opprette SQLite -tabeller for å utføre transaksjoner

For å utføre transaksjoner, må vi først lage en tabell. I figuren kan du legge merke til at vi har laget en tabell med navnet “Person_Accounts.”Tabellen er spesifisert med de fire kolonnene som Person_id, Person_name, Account_number og Account_Balance med deres datatyper.

Lag tabell Person_Accounts (
Person_id int Primærnøkkel ,
Person_name Char (10) ,
konto_nummer int ,
Account_Balance Float
);

Her har vi en post satt inn med SQLite Insert -kommandoen.

Sett inn Person_Accounts Values ​​(1, 'Ayat', 171636460, 5000);
Sett inn Person_Accounts Values ​​(2, 'Muneeb', 673201984, 8000);
Sett inn Person_Accounts Values ​​(3, 'Wahaj', 112603502, 4000);
Sett inn Person_Accounts Values ​​(4, 'Maya', 501738449, 7500);

Tabellen er synlig i tabellformatet som følger:

Eksempel 1: Utfør transaksjon med BEGIN -kommando i SQLite

Begynn transaksjon, eller BEGIN -kommandoen, kan brukes til å starte transaksjoner. Imidlertid, hvis databasen avsluttes eller en feil oppstår, vil en transaksjon tilbakeholde.

Opprinnelig har vi inkludert en begynnende terminologi med transaksjonsperioden. Deretter har vi oppdateringskommandoen, som opererer på Account_Balance -kolonnen der Person_id er lik "2" sammen med person_id lik "4". Som vi har gitt en forpliktelsesinstruksjon, avsluttes transaksjonen her.

Begynn transaksjon;
Oppdater person_kontoer
Sett Account_Balance = Account_Balance - 1000
Hvor person_id = 2;
Oppdater person_kontoer
Sett Account_Balance = Account_Balance + 500
Hvor person_id = 4;
BEGÅ;

Oversettelsen utføres vellykket på tabellen “Person_Accounts”, og feltet “Account_Balance” er oppdatert på den spesifiserte person_id.

Eksempel 2: Utfør transaksjon på Commit Command i SQLite

Commit -kommandoen er en transaksjonskommando som lagrer endringer i databasen utløst av en transaksjon. Commit -kommandoen bevarer alle databasetransaksjoner siden forrige forpliktelse eller tilbakevendingsinstruksjon.

I det følgende eksemplet har vi den første starten på transaksjonen med begrepet Begin -transaksjonen. Etter dette har vi innsatskommandoen, som setter inn en ny post i tabellen “Person_Accounts.”Vi har gitt en forpliktelseskommando til slutt, som avslutter transaksjonen her og lagrer endringen i den gitte tabellen.

Begynn transaksjon;
Sett inn Person_Accounts (Person_id, Person_name, Account_number, Account_Balance)
Verdier (3, 'Wahaj', 112603502, 4000);
BEGÅ;

Visningen av tabellen viser den nye posten i følgende tabell.

Eksempel 3: Utfør transaksjon på Rollback -kommandoen i SQLite

Rollback er en transaksjonskommando som brukes til å slappe av transaksjoner som ikke har vært forpliktet til databasen ennå.

Her har vi utført slettingsoperasjonen på tabellen “Persons_Accounts”, der den matchet tilstanden på det gitte kontoen_nummerfeltet. Etter dette har vi gitt tilbakevendingsinstruksjoner som også vil avslutte transaksjonen her, men ikke lagre endringene vi har utført på bordet.

Begynn transaksjon;
Slett fra person_kontoer der konto_nummer = 112603502;
Slett fra person_kontoer der konto_nummer = 171636460;
Rollback;

Etter å ha utført tilbakeslagsoperasjonen, har tabellen de samme verdiene og felt som eksisterer i tabellen som før.

Konklusjon

Etter å ha lest denne artikkelen, håper vi at du har et klart grep om SQLite -transaksjoner. Vi snakket om SQLites transaksjonsegenskaper og transaksjonskontroll. Implementerte også flere sqlite -eksempler som beskriver transaksjonsatferd med Commit and Rollback -funksjonalitetene. Det er alt det er å vite om SQLite -transaksjoner, inkludert Commit og Rollback Transaction Information.