Tomasz Zadora programuję
Temat: [postgreSQL] Dynamiczna nazwa kolumny w NEW (typie danych...
Witam,pytanie:
czy można w funkcji która zwraca trigger (a właściwie typ danych RECORD) używać dynamicznej nazwy kolumny w obiekcie RECORD - np.
NEW, która została przekazana przy wywołaniu tej funkcji przez trigger?
Przykład który nie działa, funkcja:
CREATE OR REPLACE FUNCTION autoinc_uni()
RETURNS trigger AS
$BODY$
BEGIN
if (NEW.TG_ARGV[0] IS NULL) THEN
NEW.TG_ARGV[0] := nextval(TG_ARGV[1]);
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
Zamiast użyć np. NEW.id chciałbym użyć nazwę kolumny jaką przekazałem przy wywoływaniu funkcji w triggerze, np.:
CREATE TRIGGER trgautoinc_sometable
BEFORE INSERT
ON sometable
FOR EACH ROW
EXECUTE PROCEDURE autoinc_uni('id', 'seq_sometable');
Przy próbie wprowadzenia danych do tabeli "sometable" dostaję komunikat, że rekord NEW nie posiada pola tg_argv.Ten post został edytowany przez Autora dnia 29.04.14 o godzinie 19:23