一文带你学会mysql的“触发器”

学习过SQL相关知识小伙伴肯定都知道存储过程、触发器、视图等相关知识,不知道的听也肯定听过,有的小伙伴可能会说,现在开发过程中都不会去使用这些相关东西了,但是渣渣东在这说一句“有些东西你可以不用,但是不能不会”;本文主要就是讲解触发器的如何创建以及触发条件,有需要的可以学习学习哦!
触发器

触发器(trigger)是SQL server提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

要素:

       触发器经常用于加强数据的完整性约束和业务规则等。 触发器创建语法四要素:

  1. 监视地点(table)
  2. 监视事件(insert/update/delete)
  3. 触发时间(after/before)
  4. 触发事件(insert/update/delete)

操作:

查看所有的触发器:

SHOW TRIGGERS;

在这里插入图片描述
删除指定的触发器:

DROP TRIGGER INSERT_FULL_PROLE;

创建简单(单语句)触发器:

AFTER: 触发语句之后执行,比如插入一条语句到监控表之后再去执行对应的sql语句
BEFORE: 触发语句之前执行,在向监控表插入数据之前先执行sql语句

CREATE TRIGGER 触发器名称 AFTER|BEFORE INSERT|UPDATE|DELETE ON  监控表
	FOR EACH ROW
BEGIN
	xxxx sql语句 (insert/update/delete/selectEND ;

创建复杂(多语句)触发器:

CREATE TRIGGER 触发器名称 AFTER|BEFORE INSERT|UPDATE|DELETE ON  监控表
	FOR EACH ROW
BEGIN
	if 条件 then
		sql语句 (insert/update/delete/selectsql语句  
	else if xxxx then 
		sql语句 (insert/update/delete/selectsql语句 
	else
	  	sql语句 (insert/update/delete/selectsql语句 
	END if;
END ;

禁用和启用触发器:

--禁用触发器
alter trigger 触发器名称 disable;
 
--启用触发器
alter trigger 触发器名称 enable;

示例:

-- 新增:
DELIMITER ||
CREATE TRIGGER INSERT_FULL_prole AFTER INSERT ON dwd_mat_fullinventoryinfo
	FOR EACH ROW
BEGIN 
	DECLARE number int;
	SET number = (select count(1) from dwd_mat_lock_storeinfo    
			where matnr=new.matnr 
				and werks=new.werks 
				and storage_location = new.storage_location 
								);
	IF number > 0 then
		update dwd_mat_lock_storeinfo 
				set MENGE = MENGE + new.MENGE, 
						SURPLUS_MENGE = MENGE - ifnull(POINT_MENGE,0)
				where matnr=new.matnr 
					and werks=new.werks 
					and storage_location = new.storage_location;
	else
		insert into dwd_mat_lock_storeinfo(MATNR,MAKTX,WERKS,STORAGE_LOCATION,STORAGE_LOCATION_MARK,WBS,WBS_DESC,	MENGE,UNIT,POINT_MENGE,SURPLUS_MENGE,GMT_CREATE,GMT_MODIFIED,CREATE_BY,LAST_MODIFIED_BY)  
		select MATNR,MAKTX,WERKS,STORAGE_LOCATION,STORAGE_LOCATION_MARK,WBS,WBS_DESC,
					 IFNULL(MENGE,0) MENGE,UNIT,IFNULL(POINT_MENGE,0) POINT_MENGE,(MENGE-POINT_MENGE) SURPLUS_MENGE,
					 GMT_CREATE,GMT_MODIFIED,CREATE_BY,LAST_MODIFIED_BY
			from dwd_mat_fullinventoryinfo 
				where matnr=new.matnr 
					and werks=new.werks 
					and storage_location = new.storage_location ;
	END IF;
END ;

or

-- 修改
DELIMITER ||
CREATE TRIGGER update_FULL_STOREINFO AFTER UPDATE ON dwd_mat_fullinventoryinfo
	FOR EACH ROW
BEGIN 
	delete from dwd_mat_fullinventoryinfo where OLD.FULL_INVENTORY_INFO_ID = full_inventory_info_id;
	insert into dwd_mat_lock_storeinfo(FULL_INVENTORY_INFO_ID,MATNR,MAKTX,WERKS,STORAGE_LOCATION,STORAGE_LOCATION_MARK,WBS,WBS_DESC,MENGE,UNIT,
		POINT_MENGE,SURPLUS_MENGE,GMT_CREATE,GMT_MODIFIED,CREATE_BY,LAST_MODIFIED_BY)  
	select FULL_INVENTORY_INFO_ID,right(MATNR,9) MATNR,MAKTX,WERKS,STORAGE_LOCATION,STORAGE_LOCATION_MARK,WBS,WBS_DESC,IFNULL(MENGE,0) MENGE,UNIT,
		ifnull(POINT_MENGE,0) POINT_MENGE,(MENGE-POINT_MENGE) SURPLUS_MENGE,GMT_CREATE,GMT_MODIFIED,CREATE_BY,LAST_MODIFIED_BY from 
	dwd_mat_fullinventoryinfo where OLD. FULL_INVENTORY_INFO_ID= full_inventory_info_id;
END ;

END:

文章到这就结束了,本人最近创建了一个群,欢迎各位进群讨论技术,互相学习!同时感兴趣的也可以关注我的博客东哥的博客,领取学习资料。
在这里插入图片描述

Eclipse是一个开放源代码的集成开发环境(IDE),可用于Java开发,但也可以用于其他编程语言的开发。在本文中,我将向你展示如何使用Eclipse进行Java开发。 1. 下载Eclipse 首先,你需要从Eclipse官方网站下载Eclipse IDE。下载页面上将提供几个不同的版本,包括Eclipse IDE for Java Developers、Eclipse IDE for JavaScript and Web Developers,以及Eclipse IDE for C/C++ Developers等。选择适合你的版本,然后按照安装向导进行安装。 2. 创建Java项目 一旦你安装了Eclipse,你可以启动它并创建一个新的Java项目。选择“File”->“New”->“Java Project”,然后按照向导创建一个新的Java项目。在创建项目时,你需要指定项目名称、项目类型以及JRE版本等信息。 3. 创建Java类 一旦你创建了一个Java项目,你就可以创建一个Java类。选择你的Java项目,在“src”文件夹上右键单击,然后选择“New”->“Class”。输入类名和选择要继承的类(如果有的话),然后点击“Finish”。 4. 编写Java代码 现在你已经创建了一个Java类,可以开始编写Java代码了。在Eclipse的编辑器中,你可以输入Java代码并保存它。当你保存Java文件时,Eclipse会自动编译你的代码,并在Problems视图中显示任何编译错误。 5. 运行Java程序 一旦你编写了Java代码并保存了它,你可以运行Java程序。右键单击Java文件,然后选择“Run As”->“Java Application”。如果一切顺利,你的Java程序将在控制台中输出结果。 6. 调试Java程序 如果你的Java程序出现了错误或不按预期运行,你可以使用Eclipse的调试器来调试它。在Eclipse的编辑器中,你可以设置断点并启动调试器。当程序执行到断点时,调试器会暂停程序并允许你检查变量、运行代码等。 7. 导入外部JAR包 有时,你可能需要使用外部JAR包来完成你的Java项目。在Eclipse中,你可以简单地将外部JAR包导入到你的项目中。右键单击Java项目,然后选择“Build Path”->“Configure Build Path”。在“Libraries”选项卡上,你可以添加外部JAR包。 总结 在本文中,我们介绍了如何使用Eclipse进行Java开发。我们学习了如何创建Java项目、创建Java类、编写Java代码、运行Java程序、调试Java程序以及导入外部JAR包。Eclipse具有强大的功能,可以大大提高Java开发的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值