MySQL Transactions

En transaksjon er en sekvensiell gruppe database manipulasjon operasjoner, som er utført som om det var en eneste arbeidsenhet. Med andre ord vil en transaksjon aldri være komplett hvis ikke hver enkelt operasjon innenfor gruppen er vellykket. Hvis noen oppgaver i løpet av transaksjonen mislykkes, vil hele transaksjonen mislykkes.

I praksis vil klubbens mange SQL-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 arbeidsenhet 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 selvstendig på og gjennomsiktig til hverandre

< b> Holdbarhet:
sikrer at resultatet eller effekten av en engasjert transaksjon vedvarer i tilfelle av en systemfeil

I MySQL, transaksjoner begynne med uttalelsen begynne arbeidet og avslutte med. enten en COMMIT eller ROLLBACK-setning. SQL-kommandoer mellom start- og sluttregnskap utgjør mesteparten av transaksjonen

COMMIT og ROLLBACK.

Disse to søkeord Commit Hotell og Rollback Anmeldelser brukes hovedsakelig for MySQL transaksjoner.

Når en vellykket transaksjon er fullført, COMMIT kommando skal utstedes slik at endringer i alle involverte tabeller vil tre i kraft.

Hvis det oppstår en feil, en ROLLBACK kommando skal utstedes for å gå tilbake hvert bord referert i transaksjonen til sin tidligere tilstand.

Du kan kontrollere atferden til en transaksjon ved å sette økten variabel kalt autocommit
. Hvis autocommit er satt til 1 (standard), deretter hver SQL-setning (innen en transaksjon eller ikke) regnes som en komplett transaksjon og engasjert som standard når den er ferdig. Når autocommit er satt til 0, ved å utstede SET autocommit = 0 kommando, den påfølgende rekke utsagn fungerer som en transaksjon, og ingen aktiviteter er forpliktet til en eksplisitt iverksetting avgis.

Du kan utføre disse SQL-kommandoer i PHP ved hjelp av mysql_query ()
funksjon

Generic Eksempel på transaksjons

Dette hendelsesforløpet er uavhengig av programmeringsspråket som brukes.; den logiske banen kan opprettes på det språket du bruker til å lage søknaden din.

Du kan utføre disse SQL-kommandoer i PHP ved hjelp av mysql_query ()
funksjon.

< p> Begynn transaksjonen ved å utstede SQL kommando begynne arbeidet.

Gi en eller flere SQL-kommandoer som SELECT, INSERT, UPDATE eller DELETE.

Sjekk om det er ingen feil, og alt er i henhold til kravet.

Hvis det er noen feil, da utstede ROLLBACK kommando, ellers utstede en COMMIT kommando.


Transaksjons-Safe typer bord i MySQL:

Du kan ikke bruke transaksjoner direkte, du kan, men de ville ikke være sikker og garantert. Hvis du planlegger å bruke transaksjoner i MySQL programmering, så du trenger for å lage tabeller på en spesiell måte. Det finnes mange typer tabeller, som støtter transaksjoner, men mest populære er InnoDB
.

Støtte til InnoDB tabeller krever en bestemt samling parameter når kompilering MySQL fra kilden. Hvis din versjon MySQL ikke har Uskyldig støtte, spør din Internet Service Provider for å bygge en versjon av MySQL med støtte for InnoDB typer bord eller laste ned og installere MySQL-Max binær-distribusjon for Windows eller Linux /UNIX og arbeide med den type bord i et utviklingsmiljø.

Hvis MySQL installasjon støtter InnoDB tabeller, bare legge til et TYPE = InnoDB
definisjonen til bordet skapelsen uttalelse. For eksempel oppretter den følgende koden et InnoDB tabell kalt tcount_tbl:
root @ host # mysql -u root -p passord; Skriv inn passord: ******* mysql > bruke Tutorials; Database changedmysql > opprette tabellen tcount_tbl - > (- ≫ tutorial_author varchar (40) NOT NULL, - > tutorial_count INT - >) TYPE = InnoDB
; Query OK, 0 rader påvirket (0,05 sek)

Sjekk følgende link for å vite mer om: InnoDB

Du kan bruke andre typer bord som GEMINI
eller BDB
, men det avhenger av installasjonen hvis den støtter disse to typene
.



Previous: