mysql5.1之前

"事件调度器"。

代码
/* 开启event_scheduler,也可以设置为on */
set  global event_scheduler  = 1 ;
/* 创建简单的任务,每分钟执行一次,从一个表取数据插入到另一个表,也可以定时取,可以参看下面文档,此处为简单例子 */
CREATE  EVENT MyEvent
ON  SCHEDULE EVERY  1  MINUTE 
DO
INSERT   INTO  list_test (字段1,字段1,字段1,字段1,字段1)  select  字段1,字段1,字段1,字段1,字段1  from  表2  where  id   =   510 ;
/*每天固定时间执行*/
CREATE EVENT EVENT_ADD_FOR20_ENOUGH
ON SCHEDULE EVERY 1 DAY
STARTS TIMESTAMP '2009-12-18 02:58:00'/×MYSQL注意时区设置,默认非中国时区×/
DO
SQL语句

/Files/pochonlee/MySQL-Events-CN.rar

再加两段吧

代码
DELIMITER $$

DROP   PROCEDURE   IF   EXISTS  `mystock`.`TEST_KKK`$$

CREATE   PROCEDURE  `mystock`.`TEST_KKK`()
    
/* LANGUAGE SQL
    | [NOT] DETERMINISTIC
    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    | SQL SECURITY { DEFINER | INVOKER }
    | COMMENT 'string'
*/
    
BEGIN
    
DECLARE  NUM  INTEGER   DEFAULT   0 ;

    
DECLARE  $A  INT ;

    
SELECT  ( 20 - COUNT (STOCK_CODE))  as   number   into  NUM  FROM  get_stock_list  WHERE  FLAG  =   0   AND  STIME  =  curdate();

    
IF  NUM > 0   THEN

    
PREPARE  STMP  FROM   ' INSERT INTO get_stock_list (stock_code,stock_name,close,raises,stime) select stock_code,stock_name,close,result1,selectd from choice_stock  where stock_code  not in (select stock_code from get_stock_list where stime = curdate() and flag = 0) and selectd = curdate() and selectd = curdate() order by id limit ? '  ;

    
SET   @A   =  NUM;

    
EXECUTE  STMP USING  @A ;

    
END   IF ;
    
END $$

DELIMITER ;
代码
DELIMITER $$

DROP   FUNCTION   IF   EXISTS  `mystock`.`FUNCTION_ADD_STOCK_FOR20`$$

CREATE  DEFINER = `root`@`localhost`  FUNCTION  `FUNCTION_ADD_STOCK_FOR20`()  RETURNS   int ( 11 )
BEGIN
    
DECLARE  NUM,ANOTHER  INTEGER ;
    
SELECT   COUNT (STOCK_CODE)  as   number   into  NUM  FROM  get_stock_list  WHERE  FLAG  =   0   AND  STIME  =  curdate();
    
if (NUM < 20 )
    
THEN  
        
SET  ANOTHER  =   20   -  NUM;
        
INSERT   INTO  get_stock_list (stock_code,stock_name, close ,raises,stime)  select  stock_code,stock_name, close ,result1,selectd  from  choice_stock  where  stock_code   not   in  ( select  stock_code  from  get_stock_list  where  stime  =  curdate()  and  flag  =   0 order   by  id LIMIT  10 ;
    
END   IF ;
    
RETURN  NUM;
    
END $$

DELIMITER ;
 
出处:http://blog.csdn.net/nadakiss/article/details/6545654

猜你喜欢

转载自1051607067.iteye.com/blog/2177310