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

    触发器

        触发器的器就是绑定一组SQL语句,触发器的触发就是在某一时刻某一对象,的某个范围上发生某一事件时,执行触发器绑定的那一组SQL语句。

    某一时刻:before、after

    某一事件:insert、update、delete

    某一对象:某个表

    某个范围:记录或表

    一个表上最多可以设置6个触发器

    创建触发器

    语法:

    第1步:更改结束符

    delimiter 符号

    第2步:定义触发器

        create triggers 触发器名 时刻 事件 on 对象 【for each row】;

    create triggers 触发器名 before|after insert|delete|update on 表 字段名 【for each row】;

     

    begin

        -- sql语句

    end

    //

    第3步:更改结束符

    delimiter ;

    需求:

        一个定单表,库存表

    创建触发器

    查看触发器

    语法:

        show triggers;

    查看触发器创建的语句

    show create trigger 触发器名

    示例:

    触发器的使用:

    触发器的记录

        当触发器执行时,对触发的表的记录进行操作时,会进行相应记录;操作之前会记录在一个对象上(old或:old),操作之后也会记录一个对象(new或:new)。

    操作:        old                    new

    insert        null                    新的记录

    update        原记录信息            新记录的信息

    delete        原记录信息            null

    如何获取原记录或新记录的字段信息?

    语法:

    old或new.字段名

    old.id        old.num

    new.id        new.num

    示例:

    操作:

    【for each row】表示每一行都会触发一次。

        触发触发器的sql可能一次更改多条记录。for each row表示每产生或更新一条记录触发器执行一次。如果省略,表示无论更改多少条记录,只触发一次。

    删除触发器

    drop trigger 触发器名

  • 相关阅读:
    window上部署Flask
    PIP超时
    覆盖内敛样式
    解决js导出csv中文乱码
    没有为请求的 URL 配置默认文档,并且没有在服务器上启用目录浏览。
    nuget加载本地包
    DataTable表头对不齐、添加参数等方法总结
    根据class判断
    element-ui的table动态生成表头和数据,且表中数据可编辑
    VScode快捷键、Chrome快捷键知识小总结和状态码
  • 原文地址:https://www.cnblogs.com/nyxd/p/5359788.html
Copyright © 2011-2022 走看看