Tehingu atribuudid
Tehingud, sageli tuntud selle termini järgi HAPE, on neli peamist üldist omadust.
- Aatomilisus: See tagab, et kõik tööüksuses olevad ülesanded saavad edukalt täidetud; muul juhul, lihtsalt rikke hetkel, protsess lõpetatakse ja varasemad protsessid taastatakse oma vanasse olekusse.
- Järjepidevus: See tähendab, et piisavalt pühendunud protsessi korral ajakohastatakse andmebaasi olekuga.
- Isolatsioon: See aitab tehingutel omavahel töötada ning individuaalselt ja läbipaistvalt.
- Vastupidavus: See tagab, et süsteemi lagunemise korral säiliks sooritatud tehingu tulemus või tagajärg.
MySQL-i tehingud töötavad:
MySQL-is kasutatakse kahte mõistet Commit ja Rollback peamiselt ainult MySQL-i tehingute jaoks. Tehingud algavad ainult TÖÖ ALGAMISEGA ja lõpevad kas deklaratsiooniga COMMIT või ROLLBACK. SQL-i juhised moodustavad suurema osa tehingust nii algus- kui ka lõpetamislausete hulgas. Sellised sündmuste sarjad ei sõltu kasutatavast programmeerimiskeelest. Teete sobiva tee mis tahes keeles, mida rakenduse loomiseks kasutate. Allpool olevaid SQL-i lauseid saab rakendada funktsiooni mysql query () abil.
- Alusta: Alustage oma protsessi või tehingut, andes käsu BEGIN WORK SQL.
- SQL-käsu lisamine: üks või isegi mitu SQL-i lauset, näiteks SELECT, INSERT, UPDATE ja DELETE. Kinnitage ka siis, kui viga pole ja kõik vastab teie ootustele.
- KOHUSTUS: COMMIT-käsk tuleb kehtestada pärast eduka tehingu tegemist, nii et kõigi seotud tabelite muudatused saaksid täielikult jõustuda.
- Tagasitulek: Rikke ilmnemisel on tõepoolest asjakohane saata ROLLBACK-käsk kõigi tehingus määratud tabelite endise tingimuse taastamiseks.
- AUTOMEETNE: Vaikimisi rakendab MySQL muudatused andmebaasi alaliselt. Kui AUTOCOMMIT on seatud väärtusele 1 (standard), siis eeldatakse, et iga SQL-päring (olenemata tehingust) on lõpetatud tehing ja seotakse seni, kuni see on vaikimisi lõpule viidud. Automaatse lubamise vältimiseks määrake AUTOCOMMIT väärtuseks 0.
Näide 01: automaatse sidestuse režiim sees:
MySQL töötab vaikimisi lubatud automaatse sidestuse etapiga. See tagab, et MySQL salvestab muudatused kettale püsivaks loomiseks seni, kuni käivitame päringut, mis tabelit korrigeerib (muudab). Käiku pole vaja tagasi pöörata. Proovime režiimis AUTOCOMMIT sisse lülitada. Avage oma MySQL-i käsurea kest ja sisestage alustamiseks oma parool.
Võtke näide tabelist "raamat", mis on loodud andmebaasi "andmed". Praegu pole me sellele veel ühtegi päringut teinud.
>> SELECT * FROM andmetest.raamat;
2. samm: See protsess on tabeli "raamat" värskendamine. Värskendame veeru „Autor” väärtust, kus raamatu „Nimi” on „Kodu”. Näete, et muudatused on edukalt tehtud.
>> UUENDAGE andmeid.raamat SET Autor = 'Cristian Steward' WHERE nimi = 'Kodu';
Vaadates värskendatud tabelit, on meil autori muudetud väärtus, kus 'nimi' on 'kodu'.
>> SELECT * FROM andmetest.raamat;
Kasutame muudatuste tühistamiseks käsku ROLLBACK, lisades lihtsalt alloleva päringu. Näete, et ROLLBACK päring siin ei tööta, kuna see näitab, et "0 rida on mõjutatud".
>> ROLLBACK;
Näete isegi lauda. Pärast ROLLBACK-i käsu täitmist pole tabelis muudatusi tehtud. See tähendab, et ROLLBACK ei tööta, kui meil on AUTOCOMMIT vaikimisi sisse lülitatud.
>> SELECT * FROM andmetest.raamat;
Näide 02: automaatse ühenduse režiim on välja lülitatud:
Tehtud muudatuste tühistamiseks proovime režiimi AUTOCOMMIT välja lülitada. Kasutades tabeli 'book' sama näidet, teeme selles mõned muudatused. Kasutame deklaratsiooni START TRANSACTION selle automaatse kinnitamise faasi deaktiveerimiseks või sisestage AUTOCOMMIT välja lülitamiseks lihtsalt järgmine käsk.
>> MÄÄRA AUTOKOMMIT = 0;Oletame, et meie andmebaasis on sama tabeli 'raamat' ja peame selles muudatusi tegema. Seejärel pöörake need muudatused uuesti vanade juurde.
>> SELECT * FROM andmetest.raamat;
Kui te pole režiimi AUTOCOMMIT välja lülitanud, alustage käsurea kestas päringuga START TRANSACTION (allpool).
>> KÄIVITA TEHINGUT;
Uuendame sama tabelit käsu UPDATE abil, määrates „Autor” väärtuseks „Aliana”, kus raamatu „Nimi” on „Unistus”. Tehke seda alloleva käsu abil. Näete, et muudatused tehakse edukalt ja tõhusalt.
>> UUENDAGE andmeid.raamat SET Autho = 'Aliana' WHERE nimi = 'unistus';
Kontrollime, kas ülaltoodud päring on ideaalselt töötanud ja tabelis muudatusi teinud või mitte. Uuendatud tabelit saate kontrollida, kasutades alati allpool olevat käsku SELECT.
>> SELECT * FROM andmetest.raamat;Näete, et päring on suurepäraselt töötanud, nagu allpool näidatud.
Nüüd on käsk ROLLBACK oma funktsiooni täitmiseks. Värske tabeli värskenduse taastamiseks proovige oma käsureal käsku ROLLBACK.
>> ROLLBACK;
Kontrollime, kas ROLLBACK päring on töötatud nii, nagu peaks toimima või mitte. Selleks peate uuesti kontrollima tabelit 'book', kasutades käsku 'SELECT' nagu alati.
>> SELECT * FROM andmetest.raamat;Allpool olevast väljundist näete, et ROLLBACK on lõpuks töötanud. See tühistas selles tabelis UPDATE päringu tehtud muudatused.
Järeldus:
See on kõik MySQL-i tehingute jaoks. Loodan, et see juhend aitab teil MySQL-i tehinguid mugavalt sooritada.