plv8 触发器使用

触发器使用

  • demo
CREATE FUNCTION test_trigger() RETURNS TRIGGER AS
$
    plv8.elog(NOTICE, "NEW = ", JSON.stringify(NEW));
    plv8.elog(NOTICE, "OLD = ", JSON.stringify(OLD));
    plv8.elog(NOTICE, "TG_OP = ", TG_OP);
    plv8.elog(NOTICE, "TG_ARGV = ", TG_ARGV);
    if (TG_OP == "UPDATE") {
        NEW.i = 102;
        return NEW;
    }
$
LANGUAGE "plv8";
CREATE TRIGGER test_trigger
    BEFORE INSERT OR UPDATE OR DELETE
    ON test_tbl FOR EACH ROW
    EXECUTE PROCEDURE test_trigger('foo', 'bar');
  • 包含的对象
    基于pg标准提供的参数
 
NEW
OLD
TG_NAME
TG_WHEN
TG_LEVEL
TG_OP
TG_RELID
TG_TABLE_NAME
TG_TABLE_SCHEMA
TG_ARGV

参考:https://www.postgresql.org/docs/current/static/plpgsql-trigger.html

参考资料

https://www.postgresql.org/docs/current/plpgsql-trigger.html
https://plv8.github.io/

posted on 2019-11-10 21:44  荣锋亮  阅读(376)  评论(0编辑  收藏  举报

导航