oracle数据库有触发器,Oracle数据库触发器(Triggers)

触发器是一种自动执行响应数据库变化的程序。可以设置为在触发器事件之前或之后触发或执行。能够触发触发器事件的事件包括下面几种:

DML事件

DDL事件

数据库事件

DML事件触发器可以是语句或行级触发器。DML语句触发器在触发语句之前或之后触发DML行级触发器在语句影响的行变化之前或之后触发。用户可以给单一事件和类型定义多个触发器,但没有任何方法可以增强多触发器触发的命令。下表列出了用户可以利用的触发器事件:

事件 触发器描述

INSERT  当向表或视图插入一行时触发触发器

UPDATE  更新表或视图中的某一行时触发触发器

DELETE 从表或视图中删除某一行时触发触发器

CREATE 当使用CREATE语句为数据库或项目增加一个对象时触发触发器

ALTER 当使用ALTER语句为更改一个数据库或项目的对象时触发触发器

DROP 当使用DROP语句删除一个数据库或项目的对象时触发触发器

START 打开数据库时触发触发器,在事件后触发

SHUTDOWN  关闭数据库时触发,事件前触发

LOGON 当一个会话建立时触发,事件前触发

LOGOFF 当关闭会话时触发,事件前触发

SERVER 服务器错误发生时触发触发器,事件后触发

创建触发器的语法如下:

CREATE [OR REPLACE] TRIGGER trigger_name

{before|after|instead of} event

ON {table_or_view_name|DATABASE}

[FOR EACH ROW[WHEN condition]]

trigger_body

只有DML触发器(INSERT、UPDATE、DELETE)语句可以使用INSTEAD OF触发器并且只有表的DML触发器可以是BEFORE或AFTER触发器。

象约束一样触发器可以被设置为禁用或启用来关闭或打开他们的执行体(EXECUTE),将触发器设置为禁用或启用使用ALTER TRIGGER语句:

ALTER TRIGGER trigger_name ENABLE;

ALTER TRIGGER trigger_name DISABLE;

要禁用或启用表的所有触发器,使用ALTER TABLE语句

ALTER TRIGGER table_name DISABLE ALL TRIGGER;

ALTER TRIGGER table_name ENABLE ALL TRIGGER;

删除触发器使用DROP TRIGGER

DROP TRIGGER trigger_name;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值