15-amaliy mashg’ulot Mavzu: Tranzaktsiyalarni boshqarish Ishdan maqsad



Download 11,96 Kb.
Sana08.07.2021
Hajmi11,96 Kb.
#112408
Bog'liq
MB 15-amaliy m Q.Ergashaliyev


15-amaliy mashg’ulot

Mavzu: Tranzaktsiyalarni boshqarish

Ishdan maqsad: Tranzaktsiyalarni boshqarishni o’rganish

{ sql_statement | statement_block }

END

Argumentlar



{sql_statement | bayonot_block}

Har qanday amaldagi Transact-SQL bayonoti yoki bayonot bloki yordamida

aniqlangan bayonot guruhi.

Izohlar


BEGIN ... END bloklari joylashishi mumkin.

Barcha Transact-SQL bayonotlari BEGIN ... END blokida amal qilishiga

qaramay, ba'zi Transact-SQL bayonotlari bitta paket (guruhlar bloki) ichida

guruhlanmasligi kerak.

Misollari

Quyidagi misolda BEGIN va END kalit so'zlari birgalikda ishlaydigan

Transact-SQL bayonotlar to'plamini belgilaydi. Agar siz BEGIN ... END blokini

qo'shmasangiz, ikkala ROLLBACK TRANSACTION bayonoti bajariladi va ikkala

xabar ham qaytariladi

USE AdventureWorks2012

GO

BEGIN TRANSACTION



GO

IF @@TRANCOUNT = 0

BEGIN

SELECT FirstName, MiddleName



FROM Person.Person WHERE LastName = 'Adams'

ROLLBACK TRANSACTION

613-18 guruhi. Q.Ergashaliyev

Transact-SQL bayonotlari guruhini bajarishga imkon beradigan Transact

SQL bayonotlari ketma-ketligini o'z ichiga oladi. BEGIN va END kalit so'zlari

boshqaruv oqimi tiliga ishora qiladi.

Syntaxsql

BEGIN PRINT N'Rolling back the transaction two times would cause an error.'

END

ROLLBACK TRANSACTION



PRINT N'Rolled back the transaction.'

GO


/*

Rolled back the transaction.

*/

COMMIT (ingliz tilidan tarjimasi - "majburiyat, majburiyat") - bu



operatsiyani muvaffaqiyatli yakunlash uchun SQL tilining tranzaktsiyalarini

boshqarish operatori. Ko'chirma rasmiylashtirilgandan so'ng, bitim boshlanishidan

boshlab kiritilgan va boshqa operatsiyalar uchun ilgari ko'rinmaydigan o'zgarishlar

ma'lumotlar bazasiga kiritiladi

ROLLBACK iborasi tranzaktsiyadagi barcha o'zgarishlarni qaytarish uchun

ishlatiladi. Ushbu ikkita ko'rsatma tranzaktsiyani aniq yakunlaydi.

Oracleda

COMMIT-ni bajarishdan oldin Oracle ma'lumotlar jurnallarini bekor qilish

va qayta tiklashni yaratadi (ular hatto diskka yozilishi mumkin). COMMIT

buyrug'i bajarilgandan so'ng, qayta ro'yxatdan o'tkaziladigan tranzaktsiyalar

jadvallari SCN bilan belgilanadi (tizim o'zgarishi raqami), qayta ro'yxatga olish

buferlari diskka yuviladi (bu bosqichda tranzaksiya tugallangan deb hisoblanadi),

blokirovkalari bo'shatiladi va bitim tugagan deb belgilanadi.

Foydalanish bo'yicha eslatmalar

Birinchi ACID printsipiga muvofiq COMMIT WORK yoki ROLLBACK

WORK buyruqlaridan foydalangan holda dasturlarda tranzaktsiyalarni aniq

yakunlash tavsiya etiladi: tranzaksiya atomik bo'lishi kerak. Agar tranzaktsiyaning

aniq yozuvi bajarilmagan bo'lsa va dastur g'ayritabiiy ravishda tugatilgan bo'lsa,

ma'lumotlar bazasi oxirgi yozilmagan operatsiyani qaytarib beradi.

Misol


MyTable-ga qator qo'shish va o'zgarishni saqlash uchun quyidagi

buyruqlarni kiriting:

BEGIN TRANSACTION WORK;

INSERT INTO MyTable VALUES ('50', 'some string');

COMMIT WORK;ROLLBACK (orqaga qaytarishdan) bu quyidagilar uchun ishlatiladigan

SQL bayonoti:

Tranzaksiya boshlangandan beri yoki biron bir tejash nuqtasidan

(SAVEPOINT) kiritilgan barcha o'zgarishlarni bekor qilish;

Ushbu operatsiya uchun barcha saqlash punktlarini tozalash;

Bitimni yakunlash;

Ushbu tranzaksiya uchun barcha qulflarni bo'shatish.

COMMIT bayonoti tranzaktsiyadagi barcha o'zgarishlarni muvaffaqiyatli

yakunlash uchun ishlatiladi.

Misol


MyTable jadvaliga yozuv qo'shish va keyin ushbu amalni bekor qilish uchun

quyidagi buyruqlarni kiriting:

BEGIN TRANSACTION WORK;

INSERT INTO MyTable VALUES ('50', 'some string');

ROLLBACK WORK;

Amaliy qism

mysql> create table accounts(

-> number int,

-> balance float,

-> primary key(number));

Query OK, 0 rows affected (0.26 sec)

mysql> insert into accounts values(12345,1025),(67890,140);Query OK, 2 rows affected (0.01 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> select * from accounts;

+--------+---------+

| number | balance |

+--------+---------+

| 12345 | 1025 |

| 67890 | 140 |

+--------+---------+

2 rows in set (0.00 sec)

mysql> begin;

Query OK, 0 rows affected (0.00 sec)

mysql> select balance from accounts where number=12345 for update;

+---------+

| balance |

+---------+

| 1025 |

+---------+

1 row in set (0.00 sec)

mysql> update accounts set balance= balance+25 where number=12345;

Query OK, 1 row affected (0.06 sec)Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from accounts;

+--------+---------+

| number | balance |

+--------+---------+

| 12345 | 1050 |

| 67890 | 140 |

+--------+---------+

2 rows in set (0.00 sec)

mysql> begin;

Query OK, 0 rows affected (0.01 sec)

mysql> update accounts set balance= balance-250 where number=12345;

Query OK, 1 row affected (0.03 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> update accounts set balance= balance+250 where number=67890;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from accounts;

+--------+---------+

| number | balance |+--------+---------+

| 12345 | 800 |

| 67890 | 390 |

+--------+---------+

2 rows in set (0.00 sec)

mysql> rollback;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from accounts;

+--------+---------+

| number | balance |

+--------+---------+

| 12345 | 1050 |

| 67890 | 140 |

+--------+---------+

2 rows in set (0.00 sec)

Xulosa

Ushbu amaliy mashg’ulotda tranzaktsiyalarni boshqarishni ko’rib chiqdim va



amaliy o’rgandim.
Download 11,96 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish