Jawne blokady Zobacz plik: blokady.sql
Czasami okazuje się, że automatyczne blokady PostgreSOLa nie wystarczają i trzeba jawnie zablokować kilka wierszy lub całą tabelę. Jeżeli jest to możliwe należy unikać jawnych blokad. Standatd SOL nie przewiduje blokady całej tabeli.
Blokady można stosować tylko wewnątrz transakcji. Po zakończeniu transakcji wszystkie jawne blokady założone w tej transakcji będą zwolnione. Nie można zwalniać blokady w trakcie działania transakcji, ponieważ umożliwiłoby to zmianę przez inną transakcję blokowanych wierszy. A to uniemożliwiłoby wykonanie rollback. Aby zablokować wiersze należy wykonać instrukcję select, dodając frazę por update:
select 1 FROM item WHERE sell_price>5.0
POR UPDATE;
Blokady tabel są możliwe chociaż niezalecane - wydajność:
LOCK TABLE nazwa_tabeli;
21
kwiecień 16, 2003