Учебное пособие Санкт-Петербург «бхв-петербург»


BEGIN ISOLATION LEVEL READ COMMITTED



Download 1,88 Mb.
Pdf ko'rish
bet202/256
Sana21.02.2022
Hajmi1,88 Mb.
#24505
TuriУчебное пособие
1   ...   198   199   200   201   202   203   204   205   ...   256
Bog'liq
morgunov e p postgresql osnovy yazyka sql

BEGIN ISOLATION LEVEL READ COMMITTED;
BEGIN
SHOW transaction_isolation;
transaction_isolation
-----------------------
read committed
(1 строка)
261


Глава 9. Транзакции
UPDATE aircrafts_tmp
SET range = range + 100
WHERE aircraft_code = 'SU9';
UPDATE 1
SELECT *
FROM aircrafts_tmp
WHERE aircraft_code = 'SU9';
aircraft_code |
model
| range
---------------+---------------------+-------
SU9
| Sukhoi SuperJet-100 | 3100
(1 строка)
Мы видим, что в первой транзакции значение атрибута range было успешно изме-
нено, хотя пока и не зафиксировано. Но транзакция видит изменения, выполненные
в ней самой.
Обратите внимание, что вместо использования команды SET TRANSACTION мы про-
сто включили указание уровня изоляции непосредственно в команду BEGIN. Эти два
подхода равносильны. Конечно, когда речь идет об использовании уровня изоляции
Read Committed, принимаемого по умолчанию, можно вообще ограничиться только
командой BEGIN без дополнительных ключевых слов.
На втором терминале так и сделаем. Во второй транзакции попытаемся обновить эту
же строку таблицы airctafts_tmp, но для того, чтобы впоследствии разобраться,
какое из изменений прошло успешно и было зафиксировано, добавим к значению
атрибута range не 100, а 200.
BEGIN;
BEGIN
UPDATE aircrafts_tmp
SET range = range + 200
WHERE aircraft_code = 'SU9';
И вот мы видим, что команда UPDATE во второй транзакции не завершилась, а пере-
шла в состояние ожидания. Это ожидание продлится до тех пор, пока не завершится
первая транзакция. Дело в том, что команда UPDATE в первой транзакции заблоки-
ровала строку в таблице airctafts_tmp, и эта блокировка будет снята только при
завершении транзакции либо с фиксацией изменений с помощью команды COMMIT,
либо с отменой изменений по команде ROLLBACK.
262


9.3. Уровень изоляции Read Committed
Давайте завершим первую транзакцию с фиксацией изменений:
COMMIT;
COMMIT
Перейдя на второй терминал, мы увидим, что команда UPDATE завершилась:
UPDATE 1
Теперь на втором терминале, не завершая транзакцию, посмотрим, что стало с нашей
строкой в таблице aircrafts_tmp:

Download 1,88 Mb.

Do'stlaringiz bilan baham:
1   ...   198   199   200   201   202   203   204   205   ...   256




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