我想创建一个触发器,当其中一个属性变为负值时,该触发器将删除一行。到目前为止我已经有了这个,但它似乎不是有效的sql:
CREATE OR REPLACE TRIGGER ZERO_COPIES_TRIGGER
after
update of counter_attribute
on my_table
referencing new as new
for each row when(new.copies < 0)
begin
delete from my_table where my_table.id = :new.id;
end;
这是行不通的。您无法对由行级触发器操作的表执行 DML。您将收到“变异表”错误。
为了获得您想要的结果,最好的办法是使用一个标志或指示器列来标识该记录是待删除。然后,有一个单独的作业或进程或其他任何东西来实际执行删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)