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)
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    knn分类算法学习
    七、rdd究竟是什么
    六、spark常见问题总结(转载)
    五、RDD持久化
    四、spark常用函数说明学习
    三、spark入门:文本中发现5个最常用的word,排除常用停用词
    二、spark入门之spark shell:文本中发现5个最常用的word
    1. 动手学深度学习基础
    anaconda遇到:Solving environment: failed with initial frozen solve. Retrying with flexible solve.问题
    neo4j中重复节点问题
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15319595.html
Copyright © 2011-2022 走看看