PostgreSQL在触发器中设置默认值

时间:2018-09-05 09:40:10

标签: postgresql database-trigger plpython

我在表上有一个“更新前触发器”。如何设置列的默认值? :

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

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

$$ LANGUAGE plpython2u VOLATILE;

2 个答案:

答案 0 :(得分:0)

来自documentation

  

...您可以从Python函数返回None或“ OK”以指示   该行未修改,单击“跳过”可中止事件,或单击“修改”表示您已修改新行。

答案 1 :(得分:0)

我认为没有办法做到这一点,因为默认值是在之前被调用的。

对于简单的默认值(常量),您可以通过在adsrc的相应条目中查找pg_catalog.pg_attrdef列并使用它来解决此问题,但这肯定不是漂亮的解决方案。