zoukankan      html  css  js  c++  java
  • 触发器

    我在想,一个PPT和书本的关系,他们就是书本的缩影么,还是其他的一些东西

    10.1 创建触发器

    10.1.1 创建只有一个执行语句的触发器

    创建一个触发器的语法如下:
    CREATE TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_stmt

    10.1.2 创建有多个执行语句的触发器

    创建多个执行语句的触发器的语法如下:
    CREATE TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_stmt

    10.2 查看触发器

    10.2.1 SHOW TRIGGERS语句查看触发器信息

    通过SHOW TRIGGERS查看触发器。
    SHOW TRIGGERS;

    10.2.2 在triggers表中查看触发器信息

    在MySQL中所有触发器的定义都存在INFORMATION_SCHEMA数据库的TRIGGERS表格中,可以通过查询命令SELECT来查看。
    SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
    WHERE condition;

    10.3 触发器的使用

    触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。在某些触发程序的用法中,可用于检查插入到表中的值,或对更新涉及的值进行计算。
    INSERT、DELETE或UPDATE

    10.4 删除触发器

    使用DROP TRIGGER语句可以删除MySQL中已经定义的触发器。
    DROP TRIGGER [schema_name.]trigger_name

    mysql> drop trigger num_sum;
    Query OK, 0 rows affected (0.01 sec)
    

    10.5 综合案例——触发器使用

    介绍了MySQL数据库的触发器的定义和作用、创建触发器、查看触发器、使用触发器和删除触发器等内容。创建触发器和使用触发器是本章的重点内容。在创建触发器的时候一定要弄清楚触发器的结构,在使用触发器的时候,要清楚触发器触发的时间(BEFORE或AFTER)和触发的条件是(INSERT、DELETE或UPDATE)。在创建了触发器后,要清楚怎么修改触发器。

    创建一个persons表

    mysql> create table persons(name varchar(50),num int);
    Query OK, 0 rows affected (0.10 sec)
    

    创建一个sales表

    mysql> create table sales(name varchar(40),sum int)
        -> ;
    Query OK, 0 rows affected (0.06 sec)
    

    创建一个触发器,在更新persons表的num字段后,更新sales表的sum字段;
    这里需注意 for each row 语句啥意思;这语句连接上下文

    mysql> create trigger num_sum after insert on persons for each row insert into sales values(new.name,7*new.num);
    Query OK, 0 rows affected (0.02 sec)
    

    向persons表中插入数据

    mysql> insert into persons values('xiaoxiao',20),('xiaohua',69)
        -> ;
    Query OK, 2 rows affected (0.02 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    

    展示结果

    mysql> select * from persons;
    +----------+------+
    | name     | num  |
    +----------+------+
    | xiaoxiao |   20 |
    | xiaohua  |   69 |
    +----------+------+
    2 rows in set (0.00 sec)
    
    mysql> select * from sales;
    +----------+------+
    | name     | sum  |
    +----------+------+
    | xiaoxiao |  140 |
    | xiaohua  |  483 |
    +----------+------+
    2 rows in set (0.00 sec)
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    EXE中释放文件
    关闭GS选项,解决注入后崩溃
    HDU2516 取石子游戏
    HDU2188 选拔志愿者
    HDU2149 Public Sale
    HDU2147 kiki's game
    HDU1846 Brave Game
    LightOJ1214 Large Division
    POJ2480 Longge's problem
    HDU 5880 Family View
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15319595.html
Copyright © 2011-2022 走看看