PostgreSQL - TRANSACTIONS

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 klubbens mange PostgreSQL spørringer i en gruppe, og du vil utføre alle av dem sammen som en del av en transaksjon.

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 brukes til å kontrollere transaksjoner:

BEGIN TRANSAKSJONER:
å starte en transaksjon

COMMIT.
å spare endringene, alternativt kan du bruke END TRANSAKSJONER
kommando

ROLLBACK:..
til å tilbakeføre endringene

Transaksjonskontrollkommandoer brukes kun med DML kommandoer INSERT, UPDATE og DELETE bare. 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 er oppstått. Men en transaksjon vil også ROLLBACK hvis databasen er stengt, eller hvis det oppstår en feil

Følgende er enkel syntaks å starte en transaksjon.
BEGIN; orBEGIN 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.
< p> 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 . databasen

rollback kommandoen kan bare brukes til å angre transaksjoner siden forrige COMMIT eller ROLLBACK kommando ble gitt

Syntaksen ROLLBACK kommando for er som følger:.
ROLLBACK; < h2> Eksempel:

Tenk COMPANY bordet er å ha følgende poster:
id | Navn | alder | adressere | lønn ---- + ------- + ----- + ----------- + -------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norge | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | Sør-Hall | 45000 7 | James | 24 | Houston | 10000

Nå, la oss starte en transaksjon og slette poster fra tabellen med alder = 25 og til slutt vi bruker ROLLBACK kommando å angre alle endringer
testdb = # BEGIN;. DELETE fra selskap der alder = 25; ROLLBACK;

Hvis du vil sjekke COMPANY tabellen fremdeles har følgende poster:
id | Navn | alder | adressere | lønn ---- + ------- + ----- + ----------- + -------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norge | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | Sør-Hall | 45000 7 | James | 24 | Houston | 10000

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
testdb = # BEGIN;. DELETE fra selskap der alder = 25; COMMIT;

Hvis du vil sjekke COMPANY tabellen fremdeles har følgende poster:
id | Navn | alder | adressere | lønn ---- + ------- + ----- + ------------ + -------- 1 | Paul | 32 | California | 20000 3 | Teddy | 23 | Norge | 20000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | Sør-Hall | 45000 7 | James | 24 | Houston | 10000 (5 p)