Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> izolacja tranzakcji i sekwencja
cepa
post
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 7
Dołączył: 27.01.2010

Ostrzeżenie: (0%)
-----


Joł

mam pytanie bo nie jestem pewien na 100%,

przykladowo:

- rozpoczynam tranzakcje
- robie jakis tam insert
- pobieram ostatni id rekordu w tej tabeli (select * from curval('seq_id'))
- commit

czy tranzakcja zapewnia ze zwrocony id bedzie na 100% indeksem rekordu ktory wstawilem?

czy powiniuennem dodac locka na poczatku tranzakcji:
LOCK TABLE tabela IN SHARE ROW EXCLUSIVE MODE
?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Nie musisz blokować tabeli, bo postgresql nie wykona dwóch operacji na raz na tej samej tabeli, wszystko leci w kolejkę.

Wystarczy że zrobisz select curval('seq_id'); o ile dobrze pamiętam. Na 100% to kiedyś wszyscy umrzemy.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 21:50