【发布时间】:2018-12-10 00:22:57
【问题描述】:
创建一个名为trigger_contact_af_update 的触发器,每当更新contact 表时就会触发该触发器。此触发器将在更新联系人详细信息后将 org_name 和操作插入表 contact_log_history。受影响的日志表contact_log_history 中的操作名称为'After_Update_Contact'。
提示:
- 触发器名称:trigger_contact_af_update
- 表名:contact_log_history
- 字段名称:org_name,action
- 操作:“After_Update_Contact”。
contact_log_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;
【问题讨论】:
-
您的作业说要跟踪
contact表中的更改,但由于某种原因,您已经在contact_log_history上构建了触发器。如果你把它建在正确的桌子上,你可能会获得更大的成功。 -
并将双方程 (
==) 替换为:new.action == 'After_Update_Contact'的单方程 (=) -
尝试了以下方法,但仍未创建触发器。创建或替换触发器 contact_af_update 更新后的联系人为每一行声明 org_name VARCHAR(30);行动 VARCHAR(30); BEGIN if (:new.action = 'After_Update_Contact') then INSERT INTO contact_log_history (org_name, action) values (:new.org_name, :new:action);万一 ;结束;
-
请检查我的回答并接受它是否对您有帮助或为给定的解决方案提供相关反馈(cmets)。请阅读:stackoverflow.com/help/someone-answers 了解为什么它很重要。