我是靠谱客的博主 朴素白云,最近开发中收集的这篇文章主要介绍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)

最后

以上就是朴素白云为你收集整理的SQL触发器的全部内容,希望文章能够帮你解决SQL触发器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部