postgresql устанавливает значение по умолчанию в триггере - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть «до обновления триггер» на столе. Как установить значение по умолчанию для столбца? :

CREATE OR REPLACE FUNCTION trigger() RETURNS TRIGGER AS
$$

TD["new"]["test"] = DEFAULT # Doesn't work

$$ LANGUAGE plpython2u VOLATILE;

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Я не думаю, что есть способ сделать это, так как значения по умолчанию оцениваются до , триггеры вызываются.

Для простых значений по умолчанию (констант) вы можете обойти это, посмотрев столбец adsrc в соответствующей записи в pg_catalog.pg_attrdef и используя его, но это, безусловно, не очень хорошее решение.

0 голосов
/ 05 сентября 2018

Из документации :

... вы можете вернуть None или «OK» из функции Python, чтобы указать строка не изменена, «Пропустить», чтобы прервать событие, или [...] «ИЗМЕНИТЬ», чтобы указать, что вы изменили новую строку.

...