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 ? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%)
|
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. |
|
|
|
cepa izolacja tranzakcji i sekwencja 29.06.2011, 22:28:03
pogdan z transakcji
begin
insert into a (a ) values (... 15.07.2011, 08:40:22
viking Możesz od razu zwrócić w INSERT. Zobacz w dokument... 11.11.2011, 08:10:39 ![]() ![]() |
|
Aktualny czas: 23.12.2025 - 21:50 |