Temat: Pobieranie danych we funkcji
Witam
Piszę pewne funkcję w których dodaje dane do określonych tabel, przez dodanie danych do tych tabel generuje się klucz główny czyli id. Muszę też pobrać id dla tego rzędu który został dodany. W tym punkcie mam pytanie.
Mogę pobierać na dwa sposoby:
id = (SELECT currval('nazwa_sekwencji'));
lub też w ten sposób
id = (SELECT id FROM ........ WHERE ...... )
Chodzi mi o wydajność i spójność danych,jeżeli pobieram id po sekwencji to spójność danych może zostać naruszona jeżeli funkcja jest wywoływana dość często i gdy poprzednia nie skończyła się gdy następna wywołała się. Chyba ,że w podczas wywoływania każdej funkcji wywoływana jest tranzakcja.
Drugi sposób wydaje się nie zawodny ,ale jeżeli chodzi o szybkość to pierwszy jestę znacznie szybszy