oracle触发器

1.触发器的语法

示例:CREATE OR REPLACE TRIGGER triggername
AFTER trigger event OF id_no ON table_name
FOR EACH ROW

1.create or replace 名称        代表创建一个名称为XXX的触发器

2.before | after : 指定触发器是在触发事件发生之前触发还暗示发生之后触发

3.trigger_event:触发事件,在DML触发器中主要为insert、update、delete等

4.table_name:  表名,表示发生触发器作用的对象

5.for each row  表示触发器将为每一行执行







CREATE [OR REPLACE] TRIGGER 触发器名称
-- 操作之前/之后
{BEFORE | AFTER}
--操作属性,更新可以指定列名
{DELETE | INSERT | UPDATE [OF 列名]}
ON 表名 
-- 如果存在这条语句,就是行级触发器,否则为语句触发器
[FOR EACH ROW[WHEN(条件)]

2.触发器使用方法示例

  1. 请写一个触发器,要求插入或更新挂号表时,将病人主索引的病人费别更新成挂号表的费别。
    --创建一个MEDREC.CLINIC_AFTER_INSERTANDUPDATE 的触发器
    create or replace trigger MEDREC.CLINIC_AFTER_INSERTANDUPDATE 
    --出发时间在事件之前(BEFORE)还是之后(AFTER)执行。 触发事件为插入或者新增
    after insert or update on clinic_master
    --表示触发器将为每一行执行。
    for each row
    --开头
    DECLARE
    begin
    --条件部分
    UPDATE MEDREC.PAT_MASTER_INDEX SET CHARGE_TYPE = :new.CHARGE_TYPE
    WHERE PATIENT_ID =:new.PATIENT_ID;
    
    --结尾
    end MEDREC.CLINIC_AFTER_INSERTANDUPDATE
1.行级触发器,针对每条数据
2. :old 和 :new 代表同一条记录
3. :old 表示操作该行之前,这一行的值
4. :new 表示操作该行之后,这一行的值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值