SQL触发器

语法:

CREATE OR REPLACE TRIGGER '触发器名称'
AFTER/BEFORE INSERT OR UPDATE OR DELETE		-- 1
ON '表名'		-- 2
REFERENCING OLD ROW AS OLD NEW ROW AS NEW		-- 3
FOR EACH ROW		-- 4
BEGIN		-- 5
	--插入语句
	IF INSERTING THEN
		INSERT INTO 
			tablename (field1, field2, field3)
		VALUES
			(:NEW.field1, :NEW.field2, :NEW.field3);
	--更新语句
	ELSEIF UPDATING THEN
		UPDATE 
			tablename 
		SET
			field1 = :NEW.field1, field2 = :NEW.field2
		WHERE
			field3 = :OLD.field3;
	END IF;
	--删除语句
	IF DELETING THEN
		DELETE FROM 
			tablename 
		WHERE 
			field1 = :OLD.field1;
	END IF;
END;

1)、 AFTER / BEFORE:在语句执行之前还是执行之后
BEFOREINSERT / UPDATE 可以修改 NEW 数据
AFTER:不可以修改 NEW 数据
BEFOREAFTER 都不可以修改 OLD 数据
2)、 目的表名
3)、 为 OLD ROWNEW ROW 设置别名
4)、 行级触发器,每有一行数据发生变化,就执行一次触发器
5)、 NEW:只有 INSERT、UPDATE 语句才有
表示 新添加、更新后 的新数据
OLD:只有 UPDATE、DELETE 语句中才有
表示 更新前、删除前 前的旧数据
BEGIN ... END; 语句块中,使用 NEW、OLD 需要在前面加上冒号(:NEW、:OLD)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

很简单_

点个赞在走呗 ~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值