Transaksjoner i SQL - Trinn for å utføre transaksjoner med eksempler

Innholdsfortegnelse:

Anonim

Introduksjon til transaksjoner i SQL

En transaksjon i SQL som vanligvis kalles betaling (sending, mottak, kjøp osv.), Men når det kommer til tekniske felt, er det måten å oppdatere den logiske informasjonsenheten i databasen.

En transaksjon er implementering av en eller flere endringer i databasen. Vi kan gruppere flere SQL-spørsmål og kjøre samtidig i en transaksjon. Alle SQL-spørringene ville enten bli kjørt på én gang, eller alle vil bli rullet tilbake. Det ville bare ha to utfall enten suksess eller fiasko.

Transaksjonen når den er begått, kan ikke være en tilbaketrekning. Den kan bare tilbakestilles hvis transaksjonen ikke er begått. MYSQL overfører automatisk endringene til databasen hvis alle spørsmålene blir utført vellykket. For å utføre endringene eksplisitt i databasen, må du først deaktivere auto-commit gjennom kommandoen -

Syntaks: SET autocommit = 0;

Transaksjonens egenskaper

Følgende er de viktige egenskapene til transaksjonene, hver transaksjon må følge disse egenskapene

1. Atomisitet

En transaksjon må være atomisk, men datamanipulering bør fullføres for en viss logisk enhet. Denne egenskapen sikrer at dataendringer finner sted helt ellers tilbakestiller transaksjonen.

2. Konsistens

Når transaksjonen er fullført, vil alle tilgjengelige poster være konsistente gjennom hele transaksjonen. Denne egenskapen sikrer at databaseegenskaper byttet tilstand etter en vellykket forpliktelse eller ikke.

3. Isolasjon

Isolasjon refererer til dataendringer på en bestemt logisk enhet skal ikke påvirke på en annen enhet. Det gjør at en transaksjon kan utføres uavhengig.

4. Holdbarhet

Endringer som er gjort under transaksjoner, skal være permanente i systemet. Ved systemfeil sikrer denne egenskapen også at dataendringer finner sted eller ikke.

Ovennevnte eiendom ved transaksjonen er også kjent som ACID-eiendom.

Trinn for transaksjon

1. Begynn

En transaksjon kan forekomme i flere SQL-kjøringer, men all SQL skal kjøres samtidig. Hvis en av transaksjonene mislykkes, vil hele transaksjonen bli tilbakeført. Uttalelsen for å starte transaksjonen er “START TRANSACTION”. Begynner forkortelsen for START TRANSACTION.

Syntaks: START TRANSAKSJON;

2. Forplikte

Forpliktelser gjenspeiler endringene i databasen permanent. Uttalelsen for å starte transaksjonen er "COMMIT".

Syntaks: COMMIT;

3. Rollback

Rollback brukes til å tilbakestille endringene, dvs. posten vil ikke bli endret, den vil være i forrige tilstand. Uttalelsen for å starte transaksjonen er "ROLLBACK".

Syntaks: ROLLBACK;

4. Savepoint

SAVEPOINT er også en transaksjonserklæring. Denne uttalelsen ble brukt til å opprette et lagringspunkt i systemet slik at ROLLBACK-operasjonen kan oppnå statusen for lagringspunktet.

5. Slipp Savepoint

RELEASE SAVEPOINT er en uttalelse for å frigjøre lagringspunktet og minnet som konsumeres av systemet ved å opprette et lagringspunkt.

Syntaks: RELEASE SAVEPOINT SP

Merknader - SP er navnet på lagringspunktet da dette lagringspunktet ble opprettet før transaksjonsstart.

6. Angi transaksjon

Kommandoen SET TRANSACTION brukes til å spesifisere transaksjonsattributtet, for eksempel at den gitte transaksjonen er en skrivebeskyttet eller skrivebeskyttet økt.

Syntaks : SETT TRANSACTION (LES-SKRIFT | KUN LES);

Transaksjonen brukes til å utføre de komplekse endringene i databasen. Den brukes hovedsakelig i bankrelaterte informasjonsendringer til en relasjonsdatabase.

Transaksjonen støttes av MYSQL-motor InnoDB. Som standard forblir auto-commit aktivert, det er grunnen til at når SQL kjøres etter utførelsesforpliktelser automatisk finner sted.

Transaksjoner ved bruk av SQL

Eksempel 1

Banktransaksjon: En konto debiterte for 50000 beløp fra person En sparekonto og leverte dette beløpet til lånekontoen til A.

Start transaksjon: Denne starttransaksjonen vil konvertere alle SQL-spørsmålene til en enkelt transaksjeenhet.

UPDATE `account` SET `balance` = `balance` - 50000 WHERE user_id = 7387438;

Denne SQL-spørringen trekker beløpet fra den eksisterende kontosaldoen.

UPDATE `loan_account` SET `paid_amount` = `paid_amount` + 50000 WHERE user_id = 7387438;

Denne SQL-spørringen legger beløpet til brukerlånekontoen.

Insert into `transaction_details`(`user_id`, 'amount') values (7387438, '50000');

Denne SQL-spørringen setter inn en ny post i tabellen for transaksjonsdetaljer, denne tabellen inneholder detaljene om alle transaksjonene til brukerne. Hvis alle spørringene ble utført vellykket, må COMMIT-kommandoen utføres, da endringene må lagres permanent i databasen.

Forpliktelse: Denne forpliktelseserklæringen lagrer endringer som påberopes av en transaksjon i databasen. Hvis noen av transaksjonene mislykkes under utførelsen, bør ROLLBACK-kommandoen utføres for å tilbakestille hele transaksjonen

Rollback: Rollback finner sted når en hvilken som helst spørring mislykkes under utførelsen.

Eksempel 2

Lagertransaksjon: I den gitte varetabellen er 6 elementer tilgjengelige.

Utfør følgende START TRANSACTION-setning for å starte transaksjonen.

Kjør nå kommandoen SET AUTOCOMMIT = 0 ; for å deaktivere auto-commit

Utfører nå følgende uttalelse for å fjerne posten fra varetabellen

Nå tilgjengelig post i tabellen er 4 dvs. poster midlertidig fjernet fra tabellelementene

Nå utfører kommandoen ROLLBACK for å tilbakestille endringene, den slettede posten vil være tilgjengelig i tabellelementene som tidligere før transaksjonen startet

Igjen hvis du bruker den samme sletteoperasjonen, så vil COMMIT-operasjonen etter at den endres bli lagret permanent i databasen

Nå kan vi se at posten fortsatt var i en ny tilstand etter ROLLBACK-kommandoen, og det betyr at når COMMIT-operasjonen utførte endringer ikke kan tilbakeføres fordi den permanent gjør endringer i databasen;

Fordeler med å bruke Transaksjon i SQL

a) Bruk av transaksjon forbedrer ytelsen , når innsetting av 1000 poster ved bruk av transaksjoner i så fall tid vil være mindre enn vanlig innsetting. Som ved vanlig transaksjon, hver gang COMMIT skulle finne sted etter hver henvendelse av spørringen, og det vil øke utførelsestiden hver gang mens du er i transaksjonen, trenger du ikke å utføre COMMIT-uttalelse etter hver SQL-spørring. COMMIT på slutten ville gjenspeile alle endringene i databasen permanent på en gang. Også hvis du bruker transaksjon, ville det være mye enklere å tilbakestille endringene enn den vanlige transaksjonen. ROLLBACK vil tilbakestille alle endringene samtidig og holde systemet i forrige tilstand.

b) Transaksjonen sikrer dataintegritet i den relative databasen. De fleste av databasene bruker flere tabeller for å opprettholde dataene, og mens du gjør oppdateringer kan det ha endringer i flere tabeller på det tidspunktet hvis noen av SQL-spørringene mislykkes, vil transaksjonen holde dataene uendret.

Konklusjon

Å bruke transaksjoner er en god praksis i informasjonsoppdatering for en logisk enhet i en relasjonsdatabase. For transaksjonsimplementering skal databasemotor støtte transaksjonen som InnoDB-motor. Transaksjonen, som en enhet av SQL-setninger, kan tilbakeføres samtidig med en enkelt ROLLBACK-setning. Transaksjon sikrer dataintegriteten og forbedrer databasens ytelse.

Anbefalte artikler

Dette er en guide til Transaksjoner i SQL. Her diskuterer vi introduksjon, egenskaper, trinn, eksempler på transaksjoner i SQL sammen med fordelene ved å bruke transaksjon i SQL.

  1. Hva er SQL
  2. SQL Management Tools
  3. SQL Views
  4. Typer sammenføyninger i SQL Server
  5. Topp 6 typer sammenføyninger i MySQL med eksempler