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

    二:触发器

    1. 什么是触发器

    触发器,是一段与某个表相关的sql语句,会在某个时间点,满足某个条件后自动触发执行

    其中两个关键因素:

    • 时间点
      * 事件发生前,before|事件发生后 after

    • 事件
      * update delete insert

    在触发器包含两个对象:

    ​ old:update,delete中可用

    ​ new:update,insert 中可用

    2. 什么时候使用触发器

    场景1:当表的数据被修改时,自动记录一些数据,执行一些sql语句

    3. 创建触发器
    # 语法
    CREATE TRIGGER t_name t_time t_event ON table_name FOR EACH ROW
    begin
    stmts.....(一堆sql语句)
    end
    
    # 需求:有cmd表和错误日志表,在cmd执行失败时自动将信息存储到错误日志表中
    # 当插入cmd表的时候,如果执行状态时,失败的,那么将信息插入到errlog中
    
    #准备数据
    CREATE TABLE cmd (
        id INT PRIMARY KEY auto_increment,
        USER CHAR (32),
        priv CHAR (10),
        cmd CHAR (64),
        sub_time datetime, #提交时间
        success enum ('yes', 'no') #0代表执行失败
    );
    #错误日志表
    CREATE TABLE errlog (
        id INT PRIMARY KEY auto_increment,
        err_cmd CHAR (64),
        err_time datetime
    );
    
    after insert之后?
    
    delimiter //
    create trigger cmd_insert after insert on cmd for each row
    begin
    if new.success = "no" then
    	insert into errlog values(null,new.cmd,new.sub_time);
    end if;
    end //
    delimiter;
    
    4. 删除触发器
    drop trigger cmd_insert;
    
    5. 查看触发器
    show triggers;
    
    show create trigger 触发器名称
    
  • 相关阅读:
    <转>CSS3 Media Queries 实现响应式设计
    css3的display:box研究
    CSS3制作渐变文字
    (转)apple-touch-icon-precomposed 和 apple-touch-icon属性区别
    (转)移动平台的meta标签
    day 57 jQuery插件
    day56 文件 文档处理,事件
    day 55 jQuery-part2
    day 54 jQuery, part-1
    day 52 dom 事件
  • 原文地址:https://www.cnblogs.com/plf-Jack/p/11194931.html
Copyright © 2011-2022 走看看