logo

SQL DARĪJUMI

Darījumi grupē uzdevumu kopu vienā izpildes vienībā. Katrs darījums sākas ar noteiktu darbu un beidzas, kad visi grupas uzdevumi ir veiksmīgi izpildīti. Ja kāds no uzdevumiem neizdodas, darījums neizdodas. Tāpēc darījumam ir tikai divi rezultāti: panākumus vai neveiksme .

Darījuma piemērs, lai pārskaitītu USD 150 no konta A uz kontu B:

1. read(A) 2. A:= A – 150 3. write(A) 4. read(B) 5. B:= B + 150 6. write(B)>

Nepilnīgu darbību rezultātā darījums neizdodas. Datu bāzes transakcijai pēc definīcijas jābūt kodolīgam, konsekventam, izolētam un izturīgam.
Tie ir tautā pazīstami kā SKĀBE īpašības. Šie rekvizīti var nodrošināt vairāku darījumu vienlaicīgu izpildi bez konfliktiem.



Darījuma īpašības

  • Atomiskums: Darījuma iznākums var būt gan pilnīgi veiksmīgs, gan pilnīgi neveiksmīgs. Viss darījums ir jāatceļ, ja viena tā daļa neizdodas.
  • Konsekvence: Darījumi saglabā integritātes ierobežojumus, pārvietojot datubāzi no viena derīga stāvokļa uz citu.
  • Izolācija: Vienlaicīgi darījumi ir izolēti viens no otra, nodrošinot datu precizitāti.
  • Izturība: Kad darījums ir veikts, tā modifikācijas paliek spēkā pat sistēmas kļūmes gadījumā.

Kā ieviest transakciju vadības komandu, izmantojot SQL?

Lai kontrolētu darījumus, tiek izmantotas šādas komandas. Ir svarīgi atzīmēt, ka šos paziņojumus nevar izmantot, veidojot tabulas, un tie tiek izmantoti tikai ar DML komandām, piemēram, IEVIETOT , ATJAUNINĀT , un DZĒST .

BEGIN DARĪJUMA komanda

Tas norāda skaidra vai lokāla darījuma sākuma punktu.

Sintakse:

BEGIN TRANSACTION transakcijas_nosaukums ;

SET TRANSACTION komanda

Pašreizējās transakcijas rekvizītu vērtības, piemēram, darījuma izolācijas līmenis un piekļuves režīms, tiek iestatītas, izmantojot MySQL paziņojumu SET TRANSACTION.

Sintakse:

IESTATĪT DARĪJUMU [ LASĪT RAKSTIET | TIKAI LASĪT ];

COMMIT komanda

Ja viss ir kārtībā ar visiem paziņojumiem viena darījuma ietvaros, visas izmaiņas tiek reģistrētas kopā, tiek izsaukta datubāze apņēmusies . Komanda COMMIT saglabā visas transakcijas datu bāzē kopš pēdējās komandas COMMIT vai ROLLBACK.

Sintakse:

APŅEMTIES;

Piemērs:

1. tabulas paraugs

int virknē java
izvade

izvade

Tālāk ir sniegts piemērs, kas no tabulas izdzēš tos ierakstus, kuru vecums ir 20, un pēc tam IESNIEDZ izmaiņas datu bāzē.

Vaicājums

DELETE FROM Student WHERE AGE = 20; COMMIT;>

Izvade

Tādējādi tiks dzēstas divas tabulas rindas un priekšraksts SELECT izskatītos šādi:

izvade

izvade

ROLLBACK komanda

Ja ar kādu no SQL grupētajiem priekšrakstiem rodas kļūda, visas izmaiņas ir jāpārtrauc. Izmaiņu apvēršanas process tiek saukts atcelšana . Šo komandu var izmantot tikai, lai atsauktu darījumus kopš pēdējās komandas COMMIT vai ROLLBACK izdošanas.

Sintakse komandai ROLLBACK:

ROLLBACK;

Piemērs:

No iepriekš minētā piemēra Tabulas paraugs1 ,
Izdzēsiet no tabulas tos ierakstus, kuru vecums ir 20, un pēc tam ATVIETOJIET izmaiņas datu bāzē.

Vaicājums

DELETE FROM Student WHERE AGE = 20; ROLLBACK;>

Izvade

izvade

izvade

SAVEPOINT komanda

SAVEPOINT izveido punktus darījumu grupās, kuros ATGĀDIET.
SAVEPOINT ir darījuma punkts, kurā jūs varat atgriezt darījumu uz noteiktu punktu, neatceļot visu darījumu.

Sintakse komandai Savepoint:

SAVEPOINT SAVEPOINT_NAME;

Šī komanda tiek izmantota tikai SAVEPOINT izveidē starp visām transakcijām.
Parasti ROLLBACK tiek izmantots, lai atsauktu darījumu grupu.

Sintakse, lai atgrieztos uz komandu Savepoint:

ATGRIEŠANA UZ SAVEPOINT_NAME;

jebkurā laikā varat ATGRIEZT uz jebkuru SAVEPOINT, lai atgrieztu atbilstošos datus to sākotnējā stāvoklī.

Piemērs:

No iepriekš minētā piemēra Tabulas paraugs1 , Izdzēsiet no tabulas tos ierakstus, kuru vecums = 20, un pēc tam ATVIETOJIET izmaiņas datu bāzē, saglabājot saglabāšanas punktus.

Vaicājums

SAVEPOINT SP1; //Savepoint created. DELETE FROM Student WHERE AGE = 20; //deleted SAVEPOINT SP2; //Savepoint created.>

Šeit SP1 ir pirmais SAVEPOINT, kas izveidots pirms dzēšanas. Šajā piemērā ir notikusi viena dzēšana.
Pēc dzēšanas atkal tiek izveidots SAVEPOINT SP2.

Izvade

izvade

izvade

Dzēšana ir notikusi. Pieņemsim, ka esat mainījis savas domas un nolēmis ATGRIEZTIES uz SAVEPOINT, kuru identificējāt kā SP1, kas atrodas pirms dzēšanas.
dzēšana tiek atsaukta ar šo paziņojumu.

dinamisks java masīvs

Vaicājums

ROLLBACK TO SP1; //Rollback completed>

Izvade

izvade

izvade

Atlaidiet SAVEPOINT komandu

Šī komanda tiek izmantota, lai noņemtu jūsu izveidoto SAVEPOINT.

Sintakse:

ATBRĪVOT SAVEPOINT SAVEPOINT_NAME

Kad SAVEPOINT ir atbrīvots, vairs nevar izmantot komandu ROLLBACK, lai atsauktu kopš pēdējās SAVEPOINT veiktās transakcijas.
To izmanto, lai iniciētu datu bāzes transakciju, un izmantotu, lai norādītu sekojošā darījuma raksturlielumus.

Secinājums

  • SQL priekšraksti tiek grupēti kopā, izmantojot transakcijas.
  • Viņi sola, ka vai nu tiek veiktas visas izmaiņas, vai arī nekādas.
  • Uzticamību nodrošina ACID īpašības – atomitāte, konsistence, izolācija un izturība.
  • Sāciet darījumu ar BEGIN TRANSACTION un pabeidziet to ar COMMIT vai ROLLBACK, lai pabeigtu vai atsauktu izmaiņas.