• MySQL:MySQL 触发器


    MySQL触发器(了解)

    1 什么是触发器

      触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事 件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对 一个表进行操作作(insert,delete, update)时就会激活它执行。

      简单理解: 当我们执行一条sql语句的时候,这条sql语句的执行会自动去触发执行其他的sql语句。

    2 触发器创建的四个要素

      1. 监视地点(table)

      2. 监视事件(insert/update/delete)

      3. 触发时间(before/after)

      4. 触发事件(insert/update/delete)

    3 创建触发器

      1) 语法格式

    delimiter $ -- 将Mysql的结束符号从 ; 改为 $,避免执行出现错误
    CREATE TRIGGER Trigger_Name -- 触发器名,在一个数据库中触发器名是唯一的
    before/after(insert/update/delete-- 触发的时机 和 监视的事件
    on table_Name -- 触发器所在的表
    for each row -- 固定写法 叫做行触发器, 每一行受影响,触发事件都执行
    begin
        -- begin和end之间写触发事件
    end
    $     -- 结束标记

      2) 向商品中添加一条数据

    # 向商品中添加一条数据
    INSERT INTO goods VALUES(1,'book',40);

      3) 需求: 在下订单的时候,对应的商品的库存量要相应的减少,卖出商品之后减少库存量。

      编写触发器

    -- 1.修改结束标识
    DELIMITER $
    -- 2.创建触发器
    CREATE TRIGGER t1
    -- 3.指定触发的时机,和要监听的表
    AFTER INSERT ON orders
    -- 4.行触发器 固定写法
    FOR EACH ROW
    -- 4.触发后具体要执行的事件
    BEGIN
        -- 订单+1 库存-1
        UPDATE goods SET num = num -1 WHERE gid = 1;
    END$

    ·  4) 查询 goods表中的数据

        

       5) 向订单表中添加一条数据

      

    INSERT INTO orders VALUES(1,1,25);

      6) goods表中的数据随之 -1

      

  • 相关阅读:
    利用JSGrid创建甘特图
    Using the SharePoint 2010 Client Object Model_part_2
    Using the SharePoint 2010 Client Object Model_part_1
    如何利用Featue对特定的文档库或列表添加listviewtoolbar上的button
    SharePoint 2010 工作流解决方案:创建带有关联窗体和启动窗体的工作流
    Wireshark过滤器
    first blog
    DataAdapter.update如果处理自动增长列的数据
    ms sql 中关于spid=2的问题
    利用ADO.NET RowUpdating更新DataRow信息
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/15023625.html
Copyright © 2020-2023  润新知