触发器确实好用

简介:

MYSQL:

建立一个触发器,实现在删除一个表格时,自动把删除的数据保存到一张备份表中,并加上删除时间:

  1. 建立备份表:

     

    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

  2. 建立触发器:

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 。




      本文转自笔下生辉  51CTO博客,原文链接:http://blog.51cto.com/752030200/1966874,如需转载请自行联系原作者





相关文章
|
11天前
|
SQL 数据库
10. 触发器和事件
10. 触发器和事件
|
5月前
|
SQL 存储
使用触发器
使用触发器。
39 5
|
5月前
|
图形学
触发器事件
触发器事件
|
7月前
|
存储 数据库 数据库管理
触发器
一、什么是触发器 触发器(Trigger)是数据库管理系统中的一种特殊类型的存储过程,它是一段与表相关联的代码,当满足特定的条件时,触发器会自动执行。触发器通常与数据库表的插入、更新或删除操作相关联,用于在数据发生变化时执行特定的操作。 触发器可以在以下情况下被触发执行: 1. 插入触发器(INSERT Trigger):当向表中插入新的数据行时,触发器会被执行。 2. 更新触发器(UPDATE Trigger):当更新表中的数据行时,触发器会被执行。 3. 删除触发器(DELETE Trigger):当从表中删除数据行时,触发器会被执行。 触发器可以用于实现以下功能: 1. 数据完整性约束:
35 0
|
11月前
|
存储 SQL 监控
第17章_触发器
第17章_触发器
103 1
|
12月前
|
存储 关系型数据库 MySQL
创建存储过程以及触发器
创建存储过程以及触发器
|
关系型数据库 MySQL 数据库
MySQL数据库(32):触发器 trigger-2
MySQL数据库(32):触发器 trigger
124 0
|
SQL 存储 安全
MySQL数据库(32):触发器 trigger-1
MySQL数据库(32):触发器 trigger
150 0