1

Temat: return z wyzwalacza

Witam!
Mam takie ogólne pytanie o zwracanie wartości przez wyzwalacz. Mam funkcję wyzwalacza w którym sprawdzam czy jest dana tabela w bazie jeżeli nie ma to muszę ją utworzyć. Sprawdzenie jest w takiej składni:

    SELECT INTO str tablename FROM pg_tables WHERE tablename=(Pojazd::integer)::varchar;
        IF not found THEN
        PERFORM f_int_CreateTable_tbl(Pojazd);
        RETURN NEW;
        END IF;

To jest tylko fragment całego wyzwalacza i jeżeli nie dam w tym bloku IF END IF wyrażenia RETURN to postgres zgłasza błąd że wyzwalacz nie zwraca żadnej wartości jednak jak dam RETURN to działanie funkcji kończy się w tym miejscu i nie wykonuje się dalej. Czy wobec tego muszę przebudować funkcję wyzwalacza czy np. przenieść sprawdzanie czy jest dana tabela do funkcji tworzącej tabele i wówczas powstało by coś w rodzaju CREATE TABLE IF NO EXISTS?

2

Odp: return z wyzwalacza

Może daj tylko jeden return na końcu funkcji (chyba że return zwraca może zwracać różne wartości). W tym miejscu nie musi być returna.

3

Odp: return z wyzwalacza

No tak prosta sprawa dzięki za informacje.