zoukankan      html  css  js  c++  java
  • 阅读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复合语句结构。这样,就能使用存储子程序中允许的相同语句。

  • 相关阅读:
    pygame中的图像和音乐
    pygame中鼠标画直线
    Python-GUI:button及entry的应用
    Linux查看物理CPU个数、核数、逻辑CPU个数
    阿里云nas使用记录
    字符集错误解决
    firewalld防火墙命令规则设置
    Linux之TCPIP内核参数
    nginx 301跳转https后post请求失效问题解决
    TCP queue 的一些问题
  • 原文地址:https://www.cnblogs.com/GooPolaris/p/7920307.html
Copyright © 2011-2022 走看看