gpt4 book ai didi

oracle - 如何停止触发器中的插入操作

转载 作者:行者123 更新时间:2023-12-04 02:22:54 25 4
gpt4 key购买 nike

我正在使用 Oracle Apex。我需要创建一个触发器来检查号码。库存是否 < 0。如果没有。库存 < 0 然后插入操作停止,然后向用户提示警告消息。以下编码不起作用。我的代码有什么问题?请帮忙。

我的编码:

CREATE OR REPLACE TRIGGER cw_service_b4_trigger
BEFORE INSERT ON cw_serviceline
FOR EACH ROW

DECLARE

exist_stock number;

BEGIN
select stock into exist_stock from cw_inventory where inv_id = :new.inv_id;
if (exist_stock - :new.quantity) < 0 then
dbms_output.put_line ('Out of Stock');
return;
end if;
END;
/

最佳答案

您没有抛出任何类型的错误。您的触发器所做的只是输出一条消息。

return 不会导致 INSERT 停止,它只会导致触发器逻辑返回。

相反,您需要引发错误以导致插入失败。

if exist_stock < :new.quantity then
raise_application_error(-20000, 'Out of stock');
end if;

关于oracle - 如何停止触发器中的插入操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26189516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com