DROP TRIGGER IF EXISTS t_afterupdate_on_borrowinfo; 
CREATE TRIGGER t_afterupdate_on_borrowinfo  
AFTER UPDATE ON borrowinfo  
FOR EACH ROW 
BEGIN
 DECLARE  day  int;
   select   to_days(curdate())-to_days (back_date  )as   day  from   borrowinfo;
   update borrowinfo set overdue_day=days    where day>0;
 update borrowinfo   set fines=days*0.1    where day>0;
END;
定义了一个触发器,目的是:当当前日期超过应归还日期时,把表中的过期天 置为两个日期的差值,罚款 为fines=days*0.1 、、、
执行后错误是:[Err] 1415 - Not allowed to return a result set from a trigger求指导,刚接触mysql,写的乱七八糟

解决方案 »

  1.   

    select   to_days(curdate())-to_days (back_date  ) into   day  from   borrowinfo;
      

  2.   


    DROP TRIGGER IF EXISTS t_afterupdate_on_borrowinfo; 
    CREATE TRIGGER t_afterupdate_on_borrowinfo  
    AFTER UPDATE ON borrowinfo  
    FOR EACH ROW 
    BEGIN
     DECLARE day int;
      select to_days(curdate())-to_days (back_date )into day from borrowinfo;
      update borrowinfo set overdue_day=day where day>0;
     update borrowinfo set fines=day*0.1 where day>0;
    END;
      

  3.   


    select to_days(curdate())-to_days (back_date ) as day from borrowinfo;
    是没错的啊,在查询里面是可以正确执行的
      

  4.   


    Not allowed to return a result set from a trigger把这个提示复制到GOOGLE翻译中看一下是什么意思。
      

  5.   


    我还想请教一个问题
    我的数据库性别类型是枚举enum,在程序中实现时,然后string‘女’插入时可以,
    更新时就是Data truncated for column 'sex' at row 1;