触发器如何判断是插入,是删除,还是更新。

VVV_lucky 2006-11-21 07:40:14
定义的触发器针对插入,删除和更新。
BEFORE INSERT OR DELETE OR UPDATE

触发器运行以后,
如何判断是插入,是删除,还是更新呢?
...全文
916 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liumang9527 2007-03-27
  • 打赏
  • 举报
回复
mark
kingkingkingking 2006-11-22
  • 打赏
  • 举报
回复
CREATE OR REPLACE TRIGGER 名称
AFTER UPDATE
OF 字段1,字段2 ... ON 表名
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
integrity_error EXCEPTION;
声明变量
BEGIN
主题语句
EXCEPTION
WHEN integrity_error THEN
BEGIN
-- 例外信息
END;
END;
tongyu10068 2006-11-22
  • 打赏
  • 举报
回复
declare trigger tri_emp
before insert or delete or update on emp for each row
begin
if inserting then
dbms_output.put_line('插入操作');
elsif deleting then
dbms_output.put_line('删除操作');
elsif updating then
dbms_output.put_line('更新操作');
end if;
end;
tongyu10068 2006-11-22
  • 打赏
  • 举报
回复
用触发器谓词deleting,updating,inserting
VVV_lucky 2006-11-22
  • 打赏
  • 举报
回复
楼上的回答只是如何触发更新各个字段的写法。
我想要得是在一个trigger下分两种情况处理,一种是针对update(任意字段),一种是针对update of 字段(指定的字段)
VVV_lucky 2006-11-21
  • 打赏
  • 举报
回复
多谢,
那么我如何区分更新这条记录和更新这个条记录的一个字段呢?
一个是BEFORE UPDATE 一个是BEFORE UPDATE OF XXX
能够写在一起吗?

下面判断的时候如何做呢?
if updating then能区分开这两种马?
jdsnhan 2006-11-21
  • 打赏
  • 举报
回复
up
doer_ljy 2006-11-21
  • 打赏
  • 举报
回复
updating\deleting\inserting
例子:
if inserting then
...
end if;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧