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: 68 Pomógł: 0 Dołączył: 21.10.2007 Ostrzeżenie: (0%)
|
z transakcji
begin insert into a (a ) values (1); select currval(a_id); commit; i select zwróci "id" ostanio wstawiany record gdzie id tabeli a to pole pobierające wartość z seqwencji "a_id" i to jest prawdą. Na tomiast tutaj bez transakcji już tak być nie musi? Czy mam rację ? insert into a (a ) values (1); select currval(a_id); |
|
|
|
cepa izolacja tranzakcji i sekwencja 29.06.2011, 22:28:03
cojack Nie musisz blokować tabeli, bo postgresql nie wyko... 1.07.2011, 08:34:49
viking Możesz od razu zwrócić w INSERT. Zobacz w dokument... 11.11.2011, 08:10:39 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 18:50 |