首页 > 解决方案 > 使用 SQL 语言创建 onBeforeCreate 动态钩子

问题描述

我想使用 SQL 为 onBeforeCreate 事件创建一个动态挂钩来验证记录。如何在函数中访问新记录的属性?

我正在使用 OrientDB 3.0.4。在工作室中,我将这些命令输入到一个新数据库中进行设置:

create class Kid extends V,OTriggered;
create property Kid.FirstName String;
create property Kid.LastName String;
create property Kid.Age Integer;
create property Kid.Grade Integer;
create function CreatingKid 'begin; console.log "Creating Kid"; commit; return "ok";' language SQL;
alter class Kid custom onBeforeCreate=CreatingKid;

我使用以下方法对其进行测试,但似乎不起作用。日志中没有打印任何内容:

insert into Kid(FirstName, LastName, Age, Grade)values('Karen', 'Tooyoung', 8, 10);

我有两个问题:1)我如何知道是否正在调用 CreatingKid 函数(我没有在控制台中看到“Creating Kid”消息),以及 2)我应该如何更改 CreatingKid 函数来比较年龄和如果年龄减去等级小于 5,评分并拒绝记录?

标签: orientdb

解决方案


推荐阅读