[ORACLE] Jak zablokować tablicę w tranzakcji

 
Napisz nowy tematOdpowiedz do tematu    Forum programistyczne Programmers Zone Strona Główna -> PHP i bazy danych
Autor Wiadomość
Rafael
~user




Dołączył: 04 Paź 2008
Posty: 26
Skąd: Warszawa
Pomógł: 1

PostWysłany: 25-02-10 11:11 Zacytuj zaznaczone Odpowiedz z cytatem

Tak żeby ktoś inny nie miał do niej dostępu do czasu zakończenia pierwszej tranzakcji ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
progs
#Moderator




Dołączył: 16 Cze 2005
Posty: 6000
Skąd: 3m
Pomógł: 358

PostWysłany: 25-02-10 12:11 Zacytuj zaznaczone Odpowiedz z cytatem

Masz na mysli blokade zapisu tabeli?, uzywaj SELECT ... FOR UPDATE i ustaw domyslny rodzaj blokowania na pesymistyczny jak chcesz blokoac cala tabele a nie tylko wybrane rekordy.

pozdro.

_________________
Programowac kazdy moze, tylko nie kazdy ma tyle cierpliwosci i zapalu zeby zajac sie tym na poważnie:)
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Numer GG Tlen
Rafael
~user




Dołączył: 04 Paź 2008
Posty: 26
Skąd: Warszawa
Pomógł: 1

PostWysłany: 25-02-10 12:56 Zacytuj zaznaczone Odpowiedz z cytatem

Czyli to tak że

Otwieram transakcję
Select max(id) into iii form table for update
...
...
INSERT INTO table VALUES (iii+1, value2)
...
Commit lub rollback zamykający transakcję spowoduje odblokowanie tablicy dla innych ?

2. A jak obsłużyć wyjątek na innej transakcji ? Czy to będzie wisiało ? Czy łapie się jakieś wyjątki ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Napisz nowy tematOdpowiedz do tematu    Forum programistyczne Programmers Zone Strona Główna -> PHP i bazy danych Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

Mapa
Powered by phpBB © 2001, 2005 phpBB Group

 Polecane strony