Transaktionsegenskaber
Transaktioner, ofte kendt under betegnelsen SYRE, har fire generelle generelle egenskaber.
- Atomicitet: Dette garanterer, at alle opgaver inde i arbejdsenheden bliver gennemført med succes; ellers, lige ved fejlpunktet, afsluttes processen, og tidligere processer gendannes til deres gamle tilstand.
- Konsistens: Dette betyder, at databasen opdateres korrekt efter en tilstrækkeligt engageret proces.
- Isolation: Det hjælper transaktioner med at arbejde sammen og individuelt og gennemsigtigt.
- Holdbarhed: Dette sikrer, at i tilfælde af systemnedbrud bevares resultatet eller konsekvensen af en forpligtet transaktion.
MySQL-transaktioner, der fungerer:
Inden for MySQL bruges de to udtryk, Commit og Rollback primært kun til MySQL-transaktioner. Transaktionerne starter kun med BEGIN WORK-erklæring og slutter enten med en COMMIT-erklæring eller en ROLLBACK-erklæring. SQL-instruktionerne omfatter størstedelen af transaktionen blandt både start- og stopudtalelser. Sådanne begivenhedsserier er uanset det anvendte specifikke programmeringssprog. Du laver en passende sti på det sprog, du bruger til at opbygge applikationen. Nedenstående SQL-sætninger kan implementeres ved hjælp af mysql-forespørgslen () -funktionen.
- BEGYNDE: Start din proces eller transaktion ved at give BEGIN WORK SQL-instruktionen.
- Tilføj SQL-KOMMANDO: en eller endnu flere SQL-sætninger som henholdsvis SELECT, INSERT, UPDATE og DELETE. Bekræft, selvom der ikke er nogen fejl, og alt er i overensstemmelse med dine forventninger.
- BEGÅ: COMMIT-instruktionen skal pålægges, når en vellykket transaktion er udført, således at ændringerne af alle de tilknyttede tabeller kan få fuld effekt.
- RULBACK: Hvis der opstår en funktionsfejl, er det faktisk passende at sende en ROLLBACK-instruktion for at tilbageføre hver tabel, der er specificeret i transaktionen, mod sin tidligere tilstand.
- AUTOCOMMIT: Som standard anvender MySQL ændringerne permanent i en database. Hvis AUTOCOMMIT er indstillet til 1 (standard), antages hver SQL-forespørgsel (uanset om det er inden i en transaktion) at være en afsluttet transaktion og forpligtet, indtil den er gennemført som standard. For at undgå automatisk forpligtelse skal du indstille AUTOCOMMIT til 0.
Eksempel 01: AutoCommit-tilstand Til:
MySQL fungerer med Autocommit-fasen tilladt som standard. Det sikrer, at MySQL gemmer ændringerne på disken for altid at oprette det, så længe vi kører en forespørgsel, der justerer (ændrer) en tabel. Det er ikke nødvendigt at vende tilbage. Lad os prøve med AUTOCOMMIT i tilstanden. Åbn din MySQL kommandolinjeskal, og skriv din adgangskode for at begynde.
Tag et eksempel på en tabel 'bog', der er oprettet i en database 'data'. Lige nu har vi ikke udført nogen forespørgsel på det endnu.
>> VÆLG * FRA data.Bestil;
Trin 2: Denne proces er at opdatere tabellen 'bog'. Lad os opdatere værdien af kolonnen 'Forfatter', hvor 'Navn' på en bog er 'Hjem'. Du kan se, at ændringer er foretaget med succes.
>> OPDATER data.bog SET Forfatter = 'Cristian Steward' HVOR Navn = 'Hjem';
Ved at få et glimt af den opdaterede tabel har vi en ændret værdi af forfatteren, hvor 'navn' er 'Hjem'.
>> VÆLG * FRA data.Bestil;
Lad os bruge ROLLBACK-kommandoen til at gendanne ændringerne ved blot at tilføje nedenstående forespørgsel. Du kan se, at ROLLBACK-forespørgslen ikke fungerer her, da den viser, at '0 rækker berørt'.
>> TILBAGE
Du kan endda se tabellen også. Tabellen har ingen ændringer efter ROLLBACK-sætningens eksekvering hidtil. Dette betyder, at ROLLBACK ikke fungerer, når vi har AUTOCOMMIT som standard.
>> VÆLG * FRA data.Bestil;
Eksempel 02: AutoCommit-tilstand Fra:
For at vende tilbage til de foretagne ændringer, lad os prøve med AUTOCOMMIT off-tilstand. Ved hjælp af det samme eksempel på tabel 'bog' udfører vi nogle ændringer på den. Vi bruger START TRANSACTION-erklæringen til at deaktivere dens auto-commit-fase eller blot skrive nedenstående kommando for at slå AUTOCOMMIT fra.
>> SET AUTOCOMMIT = 0;Lad os sige, at vi har den samme tabel 'bog' i vores database, og vi er nødt til at foretage ændringer i den. Vend derefter ændringerne tilbage til de gamle igen.
>> VÆLG * FRA data.Bestil;
Hvis du ikke har slået AUTOCOMMIT-tilstand fra, skal du starte med en START-TRANSAKTION-forespørgsel i kommandolinjeskallen som nedenfor.
>> START TRANSAKTION;
Vi opdaterer den samme tabel ved hjælp af UPDATE-kommandoen ved at indstille 'Forfatter' som 'Aliana', hvor 'Navn' på en bog er 'Drøm'. Gør det ved hjælp af nedenstående kommando. Du vil se, at ændringerne vil blive foretaget med succes og effektivt.
>> OPDATER data.bog SET Autho = 'Aliana' HVOR Navn = 'Drøm';
Lad os kontrollere, om ovenstående forespørgsel har fungeret perfekt og foretaget ændringer i tabellen eller ej. Du kan kontrollere den opdaterede tabel ved at bruge nedenstående SELECT-kommando som altid.
>> VÆLG * FRA data.Bestil;Du kan se, at forespørgslen har fungeret godt som vist nedenfor.
Nu drejer det sig om ROLLBACK-kommandoen for at udføre sin funktion. Prøv ROLLBACK-kommandoen på din kommandolinje for at rulle den seneste opdatering til tabellen tilbage.
>> TILBAGE
Lad os kontrollere, om ROLLBACK-forespørgslen er blevet udført, som den skal fungere eller ej. Til dette skal du kontrollere tabellen 'bog' igen ved at bruge kommandoen 'SELECT' som altid.
>> VÆLG * FRA data.Bestil;Du kan se fra nedenstående output, at ROLLBACK endelig har fungeret. Det har tilbageført ændringerne foretaget af UPDATE-forespørgslen på denne tabel.
Konklusion:
Det er alt for MySQL-transaktioner. Jeg håber, at denne guide hjælper dig med at udføre MySQL-transaktioner bekvemt.