Sql Oracle 11g触发器,当数字低于x时设置标志
我需要创建一个触发器,当一个产品的现存量低于5时设置一个标志 我在Oracle 11g中创建了一个表“STP_STOCK”,它有以下列: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; 假
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
的触发器。您似乎正在尝试在订单
表中定义触发器。感谢大家的帮助。