Oracle 在更新表后创建要插入的触发器
创建一个名为Oracle 在更新表后创建要插入的触发器,oracle,triggers,Oracle,Triggers,创建一个名为trigger\u contact\u af\u update的触发器,该触发器在contact表更新时触发。更新联系人详细信息后,此触发器将把组织名称和操作插入表联系人日志\u历史记录。受影响的日志表联系人\u日志\u历史记录中的操作名称为“更新联系人后” 提示: 触发器名称:触发器\u联系人\u af\u更新 表名称:联系人记录历史记录 字段名称:组织名称、操作 操作:“更新联系人后” contact\u log\u history的表结构如下: org_name Varch
trigger\u contact\u af\u update
的触发器,该触发器在contact
表更新时触发。更新联系人详细信息后,此触发器将把组织名称和操作插入表联系人日志\u历史记录
。受影响的日志表联系人\u日志\u历史记录中的操作名称为“更新联系人后”
提示:
- 触发器名称:触发器\u联系人\u af\u更新
- 表名称:联系人记录历史记录
- 字段名称:组织名称、操作
- 操作:“更新联系人后”
contact\u log\u history
的表结构如下:
org_name Varchar(30)
action Varchar(30)
我写了下面的触发器,但没有创建错误或触发器
CREATE OR REPLACE TRIGGER trigger_contact_af_update AFTER UPDATE
ON contact_log_history FOR EACH ROW
DECLARE
org_name VARCHAR(30);
action VARCHAR(30);
BEGIN
if (:new.action == 'After_Update_Contact')
then
INSERT INTO contact_log_history (org_name, action)
values (:new.org_name, :new:action);
end if ;
END;
你应该使用
SHOW ERRORS
或
从用户错误中选择*代码>
在编译过程/函数/触发器期间检查错误
在解决问题和避免变量后,这里有一个工作触发器
CREATE OR replace TRIGGER contact_af_update AFTER
UPDATE
ON contact FOR EACH ROW
DECLARE
BEGIN
IF (:new.action = 'After_Update_Contact') THEN
INSERT INTO contact_log_history
(
org_name,
action
)
VALUES
(
:new.org_name,
:new.action
);
END IF ;
END;
/
您的作业要求跟踪联系人
表中的更改,但出于某种原因,您已在联系人日志历史记录
上构建了触发器。如果您在正确的表上构建它,您可能会获得更大的成功。对于:new.action=='After\u Update\u Contact'
尝试了以下操作,但仍然没有创建触发器,将双方程(=
)替换为单方程(=
)。为每行的联系人更新后创建或替换触发器联系人,声明组织名称VARCHAR(30);行动方案(30);如果(:new.action='After\u Update\u Contact'),则开始,然后将值(:new.org\u name,:new:action)插入到联系人日志(org\u name,action)历史记录中;如果结束;结束;请检查我的答案,如果它对您有帮助,请接受,或者为给定的解决方案提供相关反馈(评论)。请阅读:了解为什么它很重要。