1

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 ...

2

Odp: Jak zaimplementować SCOPE_IDENTITY() w pgSQL?

A nie wystarczy

INSERT .... RETURNING key_id;

3

Odp: Jak zaimplementować SCOPE_IDENTITY() w pgSQL?

INSERT .... RETURNING key_id;
Thanks! It works! This is what I was searching!