select @klx_num := kaleixing from poll_code WHERE id = LAST_INSERT_ID();
SElecT CASE @klx_num
WHEN 1 THEN @mytime = date_add(now(), interval 1 DAY )
WHEN 7 THEN @mytime  = date_add(now(), interval 1 WEEK )
WHEN 30 THEN @mytime = date_add(now(), interval 1 MONTH )
WHEN 90 THEN @mytime = date_add(now(), interval 1 QUARTER )
WHEN 365 THEN @mytime = date_add(now(), interval 1 YEAR )
end;
UPDATE poll_code  SET enddate  = @mytime  WHERE  id = LAST_INSERT_ID(); //-----------------------------------------------------------------------------
 上面是我写的代码,下面是我创建的触发器思路,求大神帮忙更改一下,或者写一段新的代码
 
//-----------------------------------------------------------------------------
 
有两张表,poll_code和guodubiao 
 在guodubiao创建一个触发器,
 当guodubiao有数据插入的时候,读取poll_code表中新插入的数据中kaleixing的数值,做判断求出时间,
 并将求出的时间更新到poll_code表内的enddate字段中 

解决方案 »

  1.   

    select @klx_num := kaleixing from poll_code WHERE id = LAST_INSERT_ID();
    set @mytime = 
     CASE @klx_num
    WHEN 1 THEN  date_add(now(), interval 1 DAY )
    WHEN 7 THEN   date_add(now(), interval 1 WEEK )
    WHEN 30 THEN  date_add(now(), interval 1 MONTH )
    WHEN 90 THEN  date_add(now(), interval 1 QUARTER )
    WHEN 365 THEN date_add(now(), interval 1 YEAR )
    end;
    UPDATE poll_code  SET enddate  = @mytime  WHERE  id = LAST_INSERT_ID(); 
      

  2.   

    select 
    CASE kaleixing
    WHEN 1 THEN @mytime = date_add(now(), interval 1 DAY )
    WHEN 7 THEN @mytime  = date_add(now(), interval 1 WEEK )
    WHEN 30 THEN @mytime = date_add(now(), interval 1 MONTH )
    WHEN 90 THEN @mytime = date_add(now(), interval 1 QUARTER )
    WHEN 365 THEN @mytime = date_add(now(), interval 1 YEAR )
    end
     into @klx_num  from poll_code WHERE id = LAST_INSERT_ID();UPDATE poll_code  SET enddate  = @mytime  WHERE  id = LAST_INSERT_ID(); 
      

  3.   

    select 
    CASE kaleixing
    WHEN 1 THEN @mytime = date_add(now(), interval 1 DAY )
    WHEN 7 THEN @mytime  = date_add(now(), interval 1 WEEK )
    WHEN 30 THEN @mytime = date_add(now(), interval 1 MONTH )
    WHEN 90 THEN @mytime = date_add(now(), interval 1 QUARTER )
    WHEN 365 THEN @mytime = date_add(now(), interval 1 YEAR )
    end
     into @klx_num  from poll_code WHERE id = LAST_INSERT_ID();UPDATE poll_code  SET enddate  = @mytime  WHERE  id = LAST_INSERT_ID(); 
      

  4.   

    给出的这两段代码
    第一段,还是会提示结果集
    第二段,没有反应还有select into 不是只能用在目标表不存在的吗?也就是说poll_code 这个表不存在才能用?
      

  5.   

    这是给变量赋值,非生成新表
    要达到什么目的,举例说明
    UPDATE poll_code  SET enddate  = 
    CASE new.kaleixing
     WHEN 1 THEN date_add(now(), interval 1 DAY )
     WHEN 7 THEN date_add(now(), interval 1 WEEK )
     WHEN 30 THEN date_add(now(), interval 1 MONTH )
     WHEN 90 THEN date_add(now(), interval 1 QUARTER )
     WHEN 365 THEN date_add(now(), interval 1 YEAR )
     end
     WHERE  id = LAST_INSERT_ID();