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

    一、创建触发器

    触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。可以协助应用在数据库端确保数据的完整性。

    表中的某些数据改变,同时引起其他相关数据改变时,使用触发器,是一类特殊的事务,可以监视某种数据操作(insert、update、delete),并触发相关操作(insert、update、delete);sql 1 触发 sql n

    触发器只能创建在永久表上,不能对临时表创建触发器。

    触发器不仅可以简化程序,还可以增加程序的灵活性。

    语法四要点:

            监视地点(table)

            监视事件(insert、update、delete)

            触发时间(after、before)

            触发事件(insert、update、delete)

           

    CREATE TRIGGER trigger_name

      trigger_time

      trigger_event

      ON tbl_name

      For Each Row

      trigger_stmt

    说明:触发器只能创建在永久表上

          Trigger_time 触发器的触发时间 before(检查约束前) 或 after

          Trigger_event 触发事件 insert、update 或 delete

          Trigger_stmt begin。。。end

     

    使用别名oldnew来引用触发器中发生变化的记录内容;

    对于同一表相同触发时间相同触发事件只能定义一个触发器

     

    问题:如何让 update 中的 goods_number、goods_id 根据 insert 的数据实时变化?

    通过 new 关键字,同理监听删除 用关键字 old

    Insert 无中生有为 new

    Delete 从有到无为 old

    Update 由 旧 变为 新 旧数据用 ord,新数据 new

    函数加变量定义以及 before 和 after 的区别:

    For each row 的含义:

     

     二、删除触发器

    一次可以删除一个触发程序;

    DROP TRIGGER trigger_name;

    查看触发器

    SHOW TRIGGERS;

    Information.Triggers表

    Select * from triggers where trigger_name =”name”;

     

    三、触发器的使用

    不能再触发器中使用以显示或隐式方式开启或结束事务语句;

    不能调用将数据返回客户端的存储程序,也不能使用采用call语句的动态sql语句

  • 相关阅读:
    numpy数组各种乘法
    python测试函数的使用时间
    dataframe 列名重新排序
    《图解设计模式》读书笔记5-1 composite模式
    《图解设计模式》读书笔记4-2 STRATEGY模式
    《图解设计模式》读书笔记4-1 Bridge模式
    《图解设计模式》读书笔记3-3 Builder模式
    《图解设计模式》读书笔记3-2 Prototype模式
    《图解设计模式》读书笔记3-1 Singleton模式
    《图解设计模式》读书笔记2-2 Factory Method模式
  • 原文地址:https://www.cnblogs.com/cshaptx4869/p/10477276.html
Copyright © 2011-2022 走看看