“ORA-04072:无效的触发器类型”错误。问题是啥?
Posted
技术标签:
【中文标题】“ORA-04072:无效的触发器类型”错误。问题是啥?【英文标题】:"ORA-04072: invalid trigger type" error. What is the problem?“ORA-04072:无效的触发器类型”错误。问题是什么? 【发布时间】:2021-05-17 18:52:11 【问题描述】:create or replace trigger "BILET_VANDUT"
for each row
AFTER insert on "AT_BILETE"
UPDATE AT_SPECTACOLE
SET s.NR_BILETE_VANDUTE= s.NR_BILETE_VANDUTE+1 FROM AT_SPECTACOLE s , AT_BILETE b WHERE s.ID_SPECTACOL=b.SPECTACOL;
end;
【问题讨论】:
【参考方案1】:直接的问题是您的从句方式已经过时了;你开始:
create or replace trigger "BILET_VANDUT"
for each row
AFTER insert on "AT_BILETE"
但应该是的
create or replace trigger "BILET_VANDUT"
AFTER insert on "AT_BILETE"
for each row
begin
(正如@a_horse_with_no_name 指出的那样,您也缺少 PL/SQL begin
)。
不过,您的更新也是错误的;你不能更新 from 的东西。您可能只想:
UPDATE AT_SPECTACOLE
SET NR_BILETE_VANDUTE= NR_BILETE_VANDUTE+1;
当您可以同时从不同的会话中进行多个插入时,您将会遇到一致性问题。在需要时计算这些计数或总数通常更简单,作为查询的一部分,或者如果您想隐藏一点,则使用视图;并且视图可以在必要时实现。
【讨论】:
以上是关于“ORA-04072:无效的触发器类型”错误。问题是啥?的主要内容,如果未能解决你的问题,请参考以下文章