1

所以我有一个函数,给定一个用户 id,根据他最后的体重测量值计算他的 bmi(体重指数)(我有一个记录所有测量值的表),我想编写一个触发器,每次用户插入他的体重时,触发器检查用户 bmi 是否低于限制。该功能还可以,但我无法让触发器在这里工作,这就是我所拥有的:

1  CREATE OR REPLACE
2  TRIGGER BMITG
3  AFTER INSERT ON WEIGHTS
4  BEGIN
5     IF BMI(USRID)>25
6     THEN raise_application_error(-20001,'Please control your weight.');
7     END IF;
8  END;

但我得到错误:错误(6,3):PL/SQL:语句被忽略错误(6,10):PLS-00201:必须声明标识符'IDENT'

我认为问题在于数据库不知道 USRID 是激活触发器的 INSERT 的用户 ID。我怎么解决这个问题?顺便说一句,WEIGHTS 表有一个用户 ID(数字)、一个日期和一个重量(数字)。

问候

4

1 回答 1

1

尝试使用:new.id代替USRID并添加FOR EACH ROW.

于 2013-01-30T18:44:40.713 回答