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   荣锋亮  阅读(379)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-11-10 graphql-modules 企业级别的graphql server 工具
2017-11-10 yarn  workspace 开发示例
2017-11-10 rpm 软件包离线安装
2017-11-10 nodejs docker 开发最好选择yarn 进行包管理而不是npm
2016-11-10 maven docker 操作
2016-11-10 maven阿里云中央仓库
2013-11-10 原有系统的技术使用

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示