Sql Oracle 11g触发器,当数字低于x时设置标志

Sql Oracle 11g触发器,当数字低于x时设置标志,sql,oracle11g,Sql,Oracle11g,我需要创建一个触发器,当一个产品的现存量低于5时设置一个标志 我在Oracle 11g中创建了一个表“STP_STOCK”,它有以下列: STP_QUANTITY, NUMBER(4,0), RANGE 0-9999 如何创建在SQL中设置标志的触发器 我已经做到了以下几点。。。但我不知道重新设置国旗 CREATE OR REPLACE TRIGGER STP_STOCK AFTER UPDATE ON orders FOR STP_QUANTITY BEGIN END; 假

我需要创建一个触发器,当一个产品的现存量低于5时设置一个标志

我在Oracle 11g中创建了一个表“STP_STOCK”,它有以下列:

STP_QUANTITY, NUMBER(4,0), RANGE 0-9999
如何创建在SQL中设置标志的触发器

我已经做到了以下几点。。。但我不知道重新设置国旗

CREATE OR REPLACE TRIGGER STP_STOCK
AFTER UPDATE
   ON orders
   FOR STP_QUANTITY

BEGIN

END;

假设该标志位于同一个表中,我建议您使用更新前触发器。然后,您可以执行以下操作:

CREATE OR REPLACE TRIGGER STP_STOCK
before UPDATE
   ON orders
   FOR each row    
BEGIN
    if :new.stp_quantity < 5
    then :new.flag := 'Y';
    end if;
END;
select o.*, (case when stp_quantity < 5 then 'Y' else 'N' end) as Flag
from orders o

(注意:为了方便起见,我使用了
*
。实际上,您希望在视图中列出每一列。)

您要设置的“标志”在哪里?您试图在
STP_STOCK
表中设置一列的“标志”是吗?还是其他表格中的一列?还是别的什么?您说您有一个表
STP\u STOCK
。但随后您尝试创建一个名为
STP\u STOCK
的触发器。您似乎正在尝试在
订单
表中定义触发器。感谢大家的帮助。