• 阅读MySQL文档第21章摘抄


    触发程序是与表相关的数据库对象。

    mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account
           FOR EACH ROW SET @sum = @sum + NEW.amount;
    Query OK, 0 rows affected (0.01 sec)

    触发器语法:

    CREATE TRIGGER trigger_name trigger_time trigger_event
        ON tbl_name FOR EACH ROW trigger_stmt

      触发程序与命名为tbl_name的表相关。tbl_name必须引用永久性表不能将触发程序与TEMPORARY表或视图关联起来。

      trigger_time是触发程序的动作时间。它可以是BEFORE或AFTER,以指明触发程序是在激活它的语句之前或之后触发。

      trigger_event指明了激活触发程序的语句的类型。trigger_event可以是下述值之一:

        INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。

        UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。

        DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。

      对于具有相同触发程序动作时间和事件的给定表,不能有两个触发程序。例如,对于某一表,不能有两个BEFORE UPDATE触发程序。但可以有1个BEFORE UPDATE触发程序和1个BEFORE INSERT触发程序,或1个BEFORE UPDATE触发程序和1个AFTER UPDATE触发程序。

      trigger_stmt是当触发程序激活时执行的语句。如果你打算执行多个语句,可使用BEGIN ... END复合语句结构。这样,就能使用存储子程序中允许的相同语句。

  • 相关阅读:
    ASP.NET中26种性能优化方法
    ASP.NET中常用的26个优化性能方法
    ASP.NET页面事件:顺序与回传详解
    ASP.NET控件属性大全
    ADO.NET数据库编程
    ado.net笔记
    98内存管理
    23个常用正则表达式(数值和字符串)
    web中用纯CSS实现筛选菜单
    Unity3D脚本:C#计时类脚本
  • 原文地址:https://www.cnblogs.com/GooPolaris/p/7920307.html
Copyright © 2020-2023  润新知