Darījuma rekvizīti
Darījumi, bieži pazīstami ar šo terminu SKĀBE, ir četras galvenās vispārīgās īpašības.
- Atomitāte: Tas garantē, ka visi uzdevumi darba vienībā tiek veiksmīgi izpildīti; citādi, tikai neveiksmes brīdī, process tiek pārtraukts, un iepriekšējie procesi tiek atjaunoti vecajā stāvoklī.
- Konsekvence: Tas nozīmē, ka pēc pietiekami saistoša procesa datu bāze tiek atbilstoši atjaunināta.
- Izolācija: Tas palīdz darījumiem strādāt savā starpā, individuāli un pārredzami.
- Izturība: Tas nodrošina, ka sistēmas bojājuma gadījumā izdarītā darījuma rezultāts vai sekas saglabājas.
Darbojas MySQL darījumi:
MySQL ietvaros abi termini Commit un Rollback galvenokārt tiek izmantoti tikai MySQL darījumiem. Darījumi sākas tikai ar DARBA SĀKUMU un tiek pabeigti ar COMMIT deklarāciju vai ROLLBACK deklarāciju. SQL instrukcijas veido lielāko daļu darījuma starp sākuma un beigu priekšrakstiem. Šāda notikumu sērija nav atkarīga no izmantotās programmēšanas valodas. Jūs izveidosiet piemērotu ceļu jebkurā valodā, kuru izmantojat, lai izveidotu lietojumprogrammu. Tālāk norādītos SQL priekšrakstus var ieviest, izmantojot mysql query () funkciju.
- SĀKT: Sāciet procesu vai darījumu, sniedzot BEGIN WORK SQL instrukciju.
- Pievienot SQL COMMAND: viens vai pat vairāki SQL priekšraksti, piemēram, SELECT, INSERT, UPDATE un DELETE. Apstipriniet, pat ja nav kļūdas un viss atbilst jūsu cerībām.
- SAISTĪT: COMMIT instrukcija jāuzliek pēc veiksmīga darījuma veikšanas, lai visu saistīto tabulu izmaiņas varētu pilnībā iedarboties.
- ATPAKAĻ Ja rodas kļūme, ir pareizi nosūtīt ROLLBACK instrukciju, lai katra transakcijā norādītā tabula atgrieztos iepriekšējā stāvoklī.
- AUTOMONIZĒT: Pēc noklusējuma MySQL modifikācijas pastāvīgi piemēro datu bāzei. Ja AUTOCOMMIT ir iestatīts uz 1 (standarta), tiek pieņemts, ka katrs SQL vaicājums (neatkarīgi no tā, vai tas ir darījuma iekšpusē) ir pabeigts darījums un tiek veikts, līdz tas pēc noklusējuma ir pabeigts. Lai izvairītos no automātiskas saistības, iestatiet AUTOCOMMIT uz 0.
01. piemērs: automātiskās ieslēgšanas režīms ieslēgts:
MySQL darbojas ar automātiskās ieslēgšanas fāzi, kas atļauta pēc noklusējuma. Tas nodrošina, ka MySQL saglabā izmaiņas diskā, lai to izveidotu pastāvīgi, kamēr mēs izpildām vaicājumu, kas pielāgo (maina) tabulu. Nav nepieciešams pagriezt atpakaļ gājienu. Mēģināsim, izmantojot režīmu AUTOCOMMIT on. Lai sāktu, atveriet MySQL komandrindas apvalku un ierakstiet paroli.
Veikt tabulas “grāmata” piemēru, kas izveidota datu bāzes “dati”. Pašlaik mēs vēl neesam izpildījuši nevienu vaicājumu.
>> SELECT * FROM dati.grāmata;
2. solis: Šis process ir tabulas “grāmata” atjaunināšana. Atjaunināsim slejas “Autors” vērtību, kur grāmatas nosaukums ir “Mājas”. Var redzēt, ka izmaiņas ir veiksmīgi veiktas.
>> ATJAUNINĀT datus.grāmata SET Autors = 'Cristian Steward' WHERE Name = 'Mājas';
Ieskatoties atjauninātajā tabulā, mums ir mainīta autora vērtība, kur vārds ir “Mājas”.
>> SELECT * FROM dati.grāmata;
Izmantosim komandu ROLLBACK, lai atsauktu izmaiņas, vienkārši pievienojot zemāk esošo vaicājumu. Varat redzēt, ka ROLLBACK vaicājums šeit nedarbojas, jo tas parāda, ka '0 ietekmētās rindas'.
>> ROLLBACK;
Jūs pat varat redzēt arī tabulu. Pēc ROLLBACK priekšraksta izpildes tabulā līdz šim nav veiktas izmaiņas. Tas nozīmē, ka ROLLBACK nedarbojas, ja mums pēc noklusējuma ir ieslēgta funkcija AUTOCOMMIT.
>> SELECT * FROM dati.grāmata;
02. piemērs: Automātiskās ieslēgšanas režīms izslēgts:
Lai atsauktu veiktās izmaiņas, mēģināsim izmantot režīmu AUTOCOMMIT off. Izmantojot to pašu tabulas “grāmata” piemēru, mēs tajā veiksim dažas izmaiņas. Mēs izmantosim paziņojumu SĀKT DARĪJUMU, lai deaktivizētu tā automātiskās izdarīšanas fāzi vai vienkārši ierakstiet zemāk esošo komandu, lai izslēgtu AUTOCOMMIT.
>> IESTATĪT AUTOMĀTISKO = 0;Pieņemsim, ka mūsu datu bāzē mums ir viena tabulas 'grāmata', un mums tajā ir jāveic izmaiņas. Tad atkal atgrieziet šīs izmaiņas vecajās.
>> SELECT * FROM dati.grāmata;
Ja neesat izslēdzis režīmu AUTOCOMMIT, komandrindas čaulā sāciet ar vaicājumu SĀKT DARĪJUMU, kā norādīts zemāk.
>> SĀKT DARĪJUMU;
Mēs atjaunināsim to pašu tabulu, izmantojot komandu UPDATE, iestatot “Autors” kā “Aliana”, kur grāmatas “Nosaukums” ir “Sapnis”. Dariet to, izmantojot zemāk esošo komandu. Jūs redzēsiet, ka izmaiņas tiks veiktas veiksmīgi un efektīvi.
>> ATJAUNINĀT datus.grāmata SET Autho = 'Aliana' WHERE Name = 'Dream';
Pārbaudīsim, vai iepriekš minētais vaicājums ir darbojies perfekti un vai tabulā ir veiktas izmaiņas. Jūs varat pārbaudīt atjaunināto tabulu, kā vienmēr izmantojot komandu SELECT.
>> SELECT * FROM dati.grāmata;Jūs varat redzēt, ka vaicājums ir darbojies lieliski, kā parādīts zemāk.
Tagad ir pienākusi kārta ROLLBACK, lai veiktu savu funkciju. Izmēģiniet komandu ROLLBACK komandrindā, lai atjaunotu tabulas neseno atjauninājumu.
>> ROLLBACK;
Pārbaudīsim, vai ROLLBACK vaicājums ir darbojies tā, kā tam vajadzētu darboties, vai nē. Lai to izdarītu, jums vēlreiz jāpārbauda tabula 'book', kā vienmēr izmantojot komandu 'SELECT'.
>> SELECT * FROM dati.grāmata;No zemāk redzamās izejas var redzēt, ka ROLLBACK beidzot ir strādājis. Tas ir atsaucis izmaiņas, ko šajā tabulā veicis vaicājums UPDATE.
Secinājums:
Tas ir viss MySQL darījumiem. Es ceru, ka šī rokasgrāmata palīdzēs ērti veikt MySQL darījumus.