【发布时间】:2021-08-25 10:29:13
【问题描述】:
这是我的示例触发器
create or replace TRIGGER INVOICES_INSERT
BEFORE INSERT ON INVOICES
FOR EACH ROW
BEGIN
if :new.INVOICE_TYPE = 'Purchase'
insert into Purchases (ID, Name, Type) Values (:new.ID, :new.Name, :new.Type)
END;
在我的示例触发器中,我在 Invoices 和 Purchases 表中都获得了记录。但是如果IF语句中满足条件,我只想将数据记录到Purchases表中。
是否可以在触发器中做到这一点。
【问题讨论】:
-
我是否理解正确:您想要捕获所有发票“购买”插入并写入采购行而不是发票行?当人员或流程认为他们插入发票时,您希望将非采购行插入发票并将采购行插入采购,而流程或人员不知道这种情况发生?他们会认为他们插入了发票,而并非总是如此?
-
如果我的假设是正确的,你为什么要这样做呢?为什么有人认为他们插入到一个表中,而数据转到另一个表中?您可以通过简单地应用 where 子句从发票表中选择所有购买和所有非购买。为了方便起见,您甚至可以创建显示一种数据或另一种数据的视图。那么为什么会有这个棘手的计划呢?