Temat: Jak zaimplementować SCOPE_IDENTITY() w pgSQL?
Witam wszystkich!
Robiąc inserta do tabeli w T-SQL bardzo łatwo mogę dostać id nowej encji (poprzez SCOPE_IDENTITY()) dla mojego procesu. W pgSQL-u ratuję sie SELECT MAX(key_id) FROM table; Nie jest to eleganckie, bo jak dwóch użytkowników jednocześnie wstawi coś do tabli to będzie niewesoło! Czy zrobić to w funkcji i otoczyć blokiem zatwierdzenia i zakończenia transakcji?
...
begin transaction
insert ...
select max(key_id) into keyId ...
commit;
return KeyId
...
, ale czy to będzie działać wewnątrz bloku funkcji?
A może ustawic poziom izolacji na SERIAZABLE (najwyższy)?
Doradźcie, coś, bo brak funkcji SCOPE_IDENTITY() i zmienej @@IDENTITY utrudnia pisanie profesionalnych aplikacji ...