DELIMITER $$DROP TRIGGER /*!50032 IF EXISTS */ `cefdata`.`Avgcef`$$create trigger `cefdata`.`Avgcef` AFTER INSERT on `cefdata`.`mylist` 
for each row BEGIN
  
  set @Type=new.bet_type;
  set @Item=new.bet_item;
  set @corp=new.account_corp;.......后面的代码就不贴了
问题:@Type,@Item,@corp有时得到的值是NULL,有时又正常,请问这是什么原因?
我用的是xampp 1.7.0的组合套装,是用SQLyog Enterprisev6.15来建触发器的

解决方案 »

  1.   

    和你的 insert 时提供的values 中的值有关。
      

  2.   

    你是如何知道 @Type,@Item,@corp有时得到的值是NULL ?
      

  3.   

    我直接把这几个值update到一个临时表啊,值有时候是对的,有时候是NULL
      

  4.   

    不要使用临时变量(@Type,@Item,@corp)了。
    直接用update t set cola=new.bet_type,new.bet_item,new.account_corp where....; 你的临时变量使用不科学。
      

  5.   

    由于你不肯贴出你全部的代码。无法测试,只能猜了。估计是使用了 session 级变量的原因。 把  @Type 定义为 local 变量create trigger `cefdata`.`Avgcef` AFTER INSERT on `cefdata`.`mylist` 
    for each row BEGINdeclare v_type int;
    declare v_Item int;
    declare v_corp int;
    set v_type=new.bet_type;
    set v_Item=new.bet_item;
    set v_corp=new.account_corp;
      

  6.   

    建议你使用“ACMAIN_CHM”先生给你的方式来处理。
    另外,顺便在这也提问个问题。
    mysql的全局变量怎么用呢?我试验了几次好像都是失败了。