zoukankan      html  css  js  c++  java
  • mysql触发器new和old区别 阿星小栈

    mysql触发器new old详解
     
    mysql触发器new old:

    "NEW . column_name"或者"OLD . column_name".这样在技术上处理(NEW | OLD . column_name)新和旧
     
    的列名属于创建了过渡变量("transition variables")。
     
    对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及
     
    OLD同时使用。下面是一个UPDATE中同时使用NEW和OLD的例子。
     
    CREATE TRIGGER tr1  
    BEFORE UPDATE ON t22   
    FOR EACH ROW   
    BEGIN   
    SET @old = OLD.s1;   
    SET @new = NEW.s1;   
    END;
    现在如果t21表中的s1列的值是55,那么执行了"UPDATE t21 SET s1 = s1 + 1"之后@old的值会变成55,

    而@new的值将会变成56。
     
    触发器的执行间隔:FOR EACH ROW子句通知触发器每隔一行执行一次动作,而不是对整个表执行一次。
     
    列值递增:
     
    create table a(  
    id int primary key auto_increment,##设置为自动递增  
    name varchar(10)  
    );
    设置初始值为1000 :
    ALTER   TABLE   tablename   AUTO_INCREMENT=1000;

     example:

     
    DROP TRIGGER IF EXISTS `timeline_insert`;
    create trigger timeline_insert
    before insert on teacher_timeline for each row
    begin 

    declare temp_org_id int(11);
    select org_id into temp_org_id from teacher_class where id=new.class_id;
    set new.org_id=temp_org_id ;

    end;
     
    DROP TRIGGER IF EXISTS `timeline_update`;
    create trigger timeline_update
    before insert on teacher_timeline for each row
    begin 

    declare temp_org_id int(11);
    select org_id into temp_org_id from teacher_class where id=new.class_id;
    set new.org_id=temp_org_id ;

    end;
     

    DROP TRIGGER IF EXISTS `class_update`;
    create trigger class_update
    before insert on teacher_class for each row
    begin 

    update teacher_timeline set org_id = old.org_id  where class_id = old.id;

    end;
  • 相关阅读:
    安装adobe,路径My Pictures或卷无效。请重新输入。
    PrintDocument打印、预览、打印机设置和打印属性的方法(较完整) .
    C# 生成CODE128条码
    SQL2005 安装时 “性能监视器计数器要求(错误)” 解决方案
    Siebel escript学习笔记
    siebel 界面搭建
    Siebel Tools 开发笔记
    Siebel Tools配置
    Oracle:environment variable "PATH" does not exceed the recommended length
    IOS开发入门实例
  • 原文地址:https://www.cnblogs.com/dereckbu/p/7233899.html
Copyright © 2011-2022 走看看