Deklaracja zmiennej w dużym bloku - Postgresql

Deklaracja zmiennej w dużym bloku - Postgresql
B3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 79
0

Cześć,
Muszę na kilku tabelach w bazie danych wykonać zapytanie, które coś sprawdzi, coś doda, coś edytuje. Całość opiera się na tym, że pobieram ID pewnej krotki i na podstawie tego numerka wykonuję resztę wszystkich operacji.

Szukam sposobu, który pozwoli mi zapisać to ID do zmiennej - wykonywanie za każdym razem tego samego podzapytania nie jest najlepszym rozwiązaniem. Obecnie robię to za pomocą funkcji, która ma zdelkarowaną zmienną i z niej korzysta.

Czy istnieje jakieś inne rozwiązanie, któro pozwoli mi na zapisanie id do zmiennej i wykonanie całego zapytania? Z tego co znalazłem w sieci to transakcja nie pozwala na deklarację zmiennych (o takim rozwiązaniu myślałem na samym początku).

pingwindyktator
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1055
0

Nie rozumiem dlaczego szukasz innego niż funkcja rozwiązania. To jest okej.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

nie bardzo rozumiem - deklarujesz zmienną na początku funkcji/procedury, potem pobierasz id do tej zmiennej a dalej już używasz w funkcji/procedurze tej zmiennej. Jak ma to działać inaczej to opisz DOKŁADNIE albo daj kod jak to teraz wygląda

B3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 79
0

@pingwindyktator Tak, masz rację, to rozwiązanie jest ok, ale zapytanie będę musiał wykonać tylko raz więc generalnie funkcja nie jest mi potrzebna. Przy zaprezentowanym podejściu będzie to wyglądało tak: dodaj procedurę, wykonaj, usuń prodecdurę.

@abrakadaber Wszystko co najważniejsze zostało opisane. Do zmiennej w pętli pobieram ID i na jego podstawie wykonuję cały ciąg niezależnych zapytań. Rozchodzi się tylko o możliwość zapisania tego ID do zmiennej :)

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.