Plsql 创建触发器以限制每个员工的行数

Plsql 创建触发器以限制每个员工的行数,plsql,Plsql,我试图创建一个触发器,它在更新前检查每行的数量,如果数量低于2,则显示错误消息 CREATE OR REPLACE TRIGGER quantcheck BEFORE UPDATE ON equipment FOR EACH ROW WHEN (old.quantityavailable >= 2) BEGIN IF :new.Quantityavailable < 2 THEN RAISE_APPLICATION_ERROR (-20001, ' Quan

我试图创建一个触发器,它在更新前检查每行的数量,如果数量低于2,则显示错误消息

CREATE OR REPLACE TRIGGER quantcheck 
BEFORE UPDATE ON equipment
FOR EACH ROW
WHEN (old.quantityavailable >= 2)
BEGIN
    IF :new.Quantityavailable < 2
        THEN RAISE_APPLICATION_ERROR (-20001, ' Quantity is below 2');
    END IF;
END Quantcheck;
/
创建或替换触发器量程检查
更新设备前
每行
何时(old.quantityavailable>=2)
开始
IF:new.Quantityavailable<2
然后引发应用程序错误(-20001,“数量低于2”);
如果结束;
结束量子切克;
/

正在创建触发器,但当我尝试验证它或检查它是否工作时,我收到一个错误,并且触发器没有正确运行。

我认为您的错误在于您使用了
old.quantityavailable
,而不是
:old.quantityavailable

我也不知道那是否是允许的

您有什么问题吗?正在创建触发器,但当我尝试验证它或检查它是否工作时,我输入了一个错误,并且触发器没有正确运行错误消息ORA-04098您可能键入了列名(Quantityavailable)?执行
显示错误触发量程检查以获取有关错误的详细信息。我在此处未看到错误。在错误堆栈中是否存在异常?向我们显示整个错误消息。我得到了这个,它是好的:ORA-20001:数量低于2 ORA-06512:在“POINT_NET.QUANTCHECK”中,Zeile 3 ORA-04088:Fehler bei der Ausführung von触发器“POINT_NET.QUANTCHECK”当然是在允许的情况下。触发器绝对正确。如果触发器正确,则不会出现错误。;-)请先阅读我上面关于这个问题的评论。你可以试试看。