Transaksjonsegenskaper
Transaksjoner, ofte kjent under begrepet SYRE, har fire generelle hovedegenskaper.
- Atomisitet: Dette garanterer at alle oppgaver inne i arbeidsenheten blir fullført; ellers, akkurat ved feilpunktet, avsluttes prosessen, og tidligere prosesser gjenopprettes til sin gamle tilstand.
- Konsistens: Dette betyr at databasen oppdateres på en passende måte ved en tilstrekkelig engasjert prosess.
- Isolering: Det hjelper transaksjoner å jobbe med hverandre og individuelt og gjennomsiktig.
- Varighet: Dette sørger for at i tilfelle system sammenbrudd, beholder utfallet eller konsekvensen av en forpliktet transaksjon.
MySQL-transaksjoner som fungerer:
Innen MySQL brukes de to begrepene, Commit og Rollback primært bare for MySQL-transaksjoner. Transaksjonene starter bare med BEGIN WORK-erklæring og avsluttes enten med en COMMIT-erklæring eller en ROLLBACK-erklæring. SQL-instruksjonene utgjør størstedelen av transaksjonen blant både start- og stopputtalelser. Slike hendelserier er uavhengig av hvilket spesifikt programmeringsspråk som brukes. Du vil lage en passende bane uansett hvilket språk du bruker for å bygge applikasjonen. SQL-setningene nedenfor kan implementeres ved hjelp av mysql-spørringen () -funksjonen.
- BEGYNNE: Start prosessen eller transaksjonen ved å gi BEGIN WORK SQL-instruksjonen.
- Legg til SQL-KOMMANDO: en eller flere SQL-setninger som henholdsvis SELECT, INSERT, UPDATE og DELETE. Bekreft selv om det ikke er feil og alt er i samsvar med forventningene dine.
- BEGÅ: COMMIT-instruksjonen må pålegges etter at en vellykket transaksjon er utført, slik at modifikasjonene til alle de tilknyttede tabellene kan få full effekt.
- TILBAKE: Hvis det oppstår en funksjonsfeil, er det virkelig riktig å sende en ROLLBACK-instruksjon om å tilbakestille hver tabell som er spesifisert i transaksjonen mot sin tidligere tilstand.
- AUTOMATISKE: Som standard bruker MySQL endringene permanent i en database. Hvis AUTOCOMMIT er satt til 1 (standard), antas hvert SQL-spørsmål (enten det er inne i en transaksjon) å være en fullført transaksjon og begått til den er fullført som standard. For å unngå automatisk forpliktelse, sett AUTOCOMMIT til 0.
Eksempel 01: AutoCommit Mode På:
MySQL opererer med Autocommit-fasen tillatt som standard. Det sikrer at MySQL lagrer endringene på disken for å opprette den hele tiden så lenge vi kjører et spørsmål som justerer (endrer) en tabell. Det er ikke nødvendig å skru tilbake flyttingen. La oss prøve med AUTOCOMMIT i modus. Åpne MySQL kommandolinjeskall og skriv inn passordet ditt for å begynne.
Ta et eksempel på en tabell 'bok' som er opprettet i en database 'data'. Akkurat nå har vi ikke utført noen spørsmål om det ennå.
>> VELG * FRA data.bok;
Steg 2: Denne prosessen er å oppdatere tabellen "bok". La oss oppdatere verdien av kolonnen 'Forfatter' der 'Navnet' til en bok er 'Hjem'. Du kan se at endringene er gjort.
>> OPPDATER data.bok SET Forfatter = 'Cristian Steward' WHERE Navn = 'Hjem';
Ved å ha et glimt av den oppdaterte tabellen, har vi en modifisert verdi av forfatteren der 'navn' er 'Hjem'.
>> VELG * FRA data.bok;
La oss bruke ROLLBACK-kommandoen til å tilbakestille endringene ved å legge til spørringen nedenfor. Du kan se at ROLLBACK-spørringen ikke fungerer her, da den viser at '0 rader berørt'.
>> ROLLBACK;
Du kan til og med se tabellen også. Tabellen har ingen endringer etter utførelsen av ROLLBACK-setningen så langt. Dette betyr at ROLLBACK ikke fungerer når vi har AUTOCOMMIT på som standard.
>> VELG * FRA data.bok;
Eksempel 02: AutoCommit Mode av:
For å tilbakestille endringene som er gjort, la oss prøve med AUTOCOMMIT av-modus. Ved å bruke det samme eksemplet på tabellen "bok", vil vi utføre noen endringer på den. Vi bruker START-TRANSAKSJON-erklæringen for å deaktivere den automatiske forpliktelsesfasen, eller bare skriv kommandoen nedenfor for å slå AUTOCOMMIT av.
>> SET AUTOCOMMIT = 0;La oss si at vi har den samme tabellen "bok" i databasen vår, og vi må gjøre endringer i den. Deretter tilbakestiller du endringene til de gamle igjen.
>> VELG * FRA data.bok;
Hvis du ikke har slått av AUTOCOMMIT-modus, så start med et START-TRANSAKSJON-spørring i kommandolinjeskallet som nedenfor.
>> START TRANSAKSJON;
Vi oppdaterer den samme tabellen ved hjelp av UPDATE-kommandoen ved å sette 'Forfatter' som 'Aliana' der 'Navn' på en bok er 'Drøm'. Gjør det ved å bruke kommandoen nedenfor. Du vil se at endringene vil bli gjort vellykket og effektivt.
>> OPPDATER data.bok SET Autho = 'Aliana' WHERE Name = 'Dream';
La oss sjekke om spørringen ovenfor har fungert perfekt og gjort endringer i tabellen eller ikke. Du kan sjekke den oppdaterte tabellen ved å bruke SELECT-kommandoen nedenfor som alltid.
>> VELG * FRA data.bok;Du kan se at spørringen har fungert bra, som vist nedenfor.
Nå er det en tur på ROLLBACK-kommandoen for å utføre sin funksjon. Prøv ROLLBACK-kommandoen på kommandolinjen for å rulle tilbake den siste oppdateringen til tabellen.
>> RULBACK;
La oss sjekke om ROLLBACK-spørringen har blitt jobbet slik den skal fungere eller ikke. For dette må du sjekke tabellen 'book' igjen ved å bruke kommandoen 'SELECT' som alltid.
>> VELG * FRA data.bok;Du kan se fra utdataene nedenfor at ROLLBACK endelig har fungert. Det har tilbakeført endringene som ble gjort av UPDATE-spørringen på denne tabellen.
Konklusjon:
Det er alt for MySQL-transaksjoner. Jeg håper denne guiden vil hjelpe deg med å utføre MySQL-transaksjoner enkelt.