MySQL:
创新互联建站成立于2013年,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元汝南做网站,已为上家服务,为汝南各地企业和个人服务,联系电话:18980820575
建立一个触发器,实现在删除一个表格时,自动把删除的数据保存到一张备份表中,并加上删除时间:
建立备份表:
CREATE TABLE `products_` (
prod_id int(11) NOT NULL,
vend_id int(11) NOT NULL,
prod_name char(20),
prod_price int(11),
prod_desc char(50),
del_time datetime ,
PRIMARY KEY (`prod_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
建立触发器:
DROP TRIGGER prod_delete; --删除触发器prod_delete,如果存在.要修改触发器只能删除重建;
DELIMITER $$ --重定义语名结束符;
CREATE TRIGGER prod_delete --触发器为prod_delete;
BEFORE DELETE ON products --在删除products表内容前生效
FOR EACH ROW --针对所有删除的行
BEGIN --开始触发器内容
INSERT INTO products_ (prod_id,vend_id,prod_name,prod_price,prod_desc,del_time) VALUES (old.prod_id,old.vend_id,old.prod_name,old.prod_price,old.prod_desc,NOW());
END; --触发器内空结束
$$ --重定义语名结束符;
DELIMITER ; --重新定义语名结束符;
MSSQL:
当更新物料库存时,自动更新BOM分录表的即时库存栏:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create TRIGGER ICInventory_update --建立ICInventory_update 触发器,用alter进行修改
ON ICInventory --建立在库存表上
AFTER update --作用于库存更新后
AS
begin --开始执行动作
update ICBOMChild set FEntrySelfZ0142=Inserted.fqty from Inserted where ICBOMChild.FItemID=Inserted.FItemID and inserted.FStockID='4435'
end --结束
GO --运行
MYSQL 和MSSQL的临时表和格式不同,mysql 只有更新数据的 new 表 和删除数据的 old 表,MSSQL的更新表则名为Inserted,存放删除数据的临时表则名为deleted 。
本文题目:触发器确实好用
当前网址:http://scyingshan.cn/article/gopsop.html