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


END; COMMIT Вот что получилось в результате: SELECT * FROM aircrafts_tmp



Pdf көрінісі
бет216/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   212   213   214   215   216   217   218   219   ...   256
sql osnovi yazika

END;
COMMIT
Вот что получилось в результате:
SELECT * FROM aircrafts_tmp;
282


Контрольные вопросы и задания
aircraft_code |
model
| range
---------------+---------------------+-------
773
| Boeing 777-300
| 11100
763
| Boeing 767-300
| 7900
SU9
| Sukhoi SuperJet-100 | 3000
320
| Airbus A320-200
| 5700
321
| Airbus A321-200
| 5600
319
| Airbus A319-100
| 6700
733
| Boeing 737-300
| 4200
CN1
| Cessna 208 Caravan | 2100
CR2
| Bombardier CRJ-200 | 1900
(9 строк)
Задание.
Модифицируйте сценарий выполнения транзакций: в первой тран-
закции вместо фиксации изменений выполните их отмену с помощью команды
ROLLBACK и посмотрите, будет ли удалена строка и какая конкретно.
3.* Когда говорят о таком феномене, как потерянное обновление, то зачастую в ка-
честве примера приводится операция UPDATE, в которой значение какого-то
атрибута изменяется с применением одного из действий арифметики. Напри-
мер:
UPDATE aircrafts_tmp
SET range = range + 200
WHERE aircraft_code = 'CR2';
При выполнении двух и более подобных обновлений в рамках параллельных
транзакций, использующих, например, уровень изоляции Read Committed, бу-
дут учтены все такие изменения (что и было показано в тексте главы). Очевид-
но, что потерянного обновления не происходит.
Предположим, что в одной транзакции будет просто присваиваться новое зна-
чение, например, так:
UPDATE aircrafts_tmp
SET range = 2100
WHERE aircraft_code = 'CR2';
А в параллельной транзакции будет выполняться аналогичная команда:
UPDATE aircrafts_tmp
SET range = 2500


Достарыңызбен бөлісу:
1   ...   212   213   214   215   216   217   218   219   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет