mysql怎么做定时任务 mysql定时任务每天固定时间执行

如何在Mysql下指定时间内执行定时任务

最常用的做法是使用UNIX的cron直接执行Java程序。

公司主营业务:网站建设、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出墨脱免费做网站回馈大家。

并不需要在Java做的那么复杂。

Windows服务器也有类似于cron的任务管理功能,同理

---------------------------

Tomcat不是用来管理定时任务的,如果没有HTTP请求,Servlet是不会被执行的。

建议lz把定期执行的处理做成一个独立的Java程序,用cron执行。

如果不想写独立的Java程序,也可以用cron定期向Tomcat发送Http请求,但是,这样做的话注意程序处理时间不能太长,因为HTTP通信有timeout的制约。

如何用navicat给mysql写定时任务

1

打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。

2

双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务。

3

点击保存,弹出个命名对话框,给这个任务取个名字,点击“确定”。

4

点击“设置”计划任务。

5

弹出的对话框,选择“计划”,再点击“新建”。

6

这里设置为从2014年1月24号起每天早上九点备份该数据库。如果你想提高备份频率、或者设置备份截止日期,请点击“高级”。

7

高级选项可以把备份设置的更精细,比如这里设置的是在24小时内每隔2小时就备份一次。加上前面的基本设置,任务计划就是:从2014年1月24号开始,每天九点,每隔2小时备份一次,每天的备份都持续24小时。

8

最后,输入电脑密码

MySql如何执行定时任务(定时执行操作)麻烦告诉我

事件调度器是定时触发执行的,在这个角度上也可以称作是临时的触发器。触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个(间隔)时间执行一些语句。事件是由一个特定的线程来管理的,也就是所谓的事件调度器。

代码:/*开启event_scheduler,也可以设置为on*/

set global event_scheduler =1;

/*创建简单的任务,每分钟执行一次,从一个表取数据插入到另一个表,也可以定时取,可以参看下面文档,此处为简单例子*/

CREATE EVENT MyEvent

ON SCHEDULE EVERY 1 MINUTEDOINSERT 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

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'*/BEGINDECLARE 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 NUM0 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 ?' ;

如何写mysql的定时任务

mysql的定时任务一般用event(事件)来完成,触发器无法完成。

一、通过mysql的命令行客户端来完成

1、set global event_scheduler =1; //开启event_scheduler

执行这个语句如果出现,可在mysql的配置文档中设置[mysqld]段中添加 event_scheduler=ON

如果重启mysql;这种情况下依然出错,Error Code: 1290. The MySQL server is running with the --event-scheduler=DISABLED

or --skip-grant-tables option so it cannot execute this statement,这个错误是说启动服务器时如果指定了--skip-grant-tables选项,则event_scheduler则自动被设置为DISABLED。命令行或配置文件的设置都会被覆盖。建议重现安装mysql或是修改启动参数(在系统服务中指定)。

查看event_scheduler状态:show status like '%event%'; 或SELECT @@event_scheduler;

2、CREATE PROCEDURE Mypro() //创建存储过程

BEGIN

update userinfo SET endtime = now() WHERE id = '155';

END;

3、创建event My_enevt,每隔三十秒执行一次

create event if not exists e_test

on schedule every 30 second

on completion preserve

do call Mypro();

4、关闭事件

alter event e_test ON COMPLETION PRESERVE DISABLE;

5、开启事件

alter event e_test ON COMPLETION PRESERVE ENABLE;

语法:

CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION

[NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'comment'] DO sql_statement;

schedule: AT TIMESTAMP [+ INTERVAL INTERVAL] | EVERY INTERVAL [STARTS TIMESTAMP]

[ENDS TIMESTAMP] INTERVAL: quantity {YEAR | QUARTER | MONTH | DAY | HOUR |

MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND |

HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

mysql,数据库能自动的定时完成一个命令吗?

mysql要实现定时执行sql语句就要用到Event

具体操作如下:

先看看看event 事件是否开启

show variables like '%sche%';

如没开启,则开启。需要数据库超级权限

set global event_scheduler =1;

创建存储过程 update_a (注:就是你要执行的sql语句)

mysql create procedure update_a() update a set a.y_avg=(select avg(b.youhao) from b where a.a_id=b.a_id);

创建一个定时任务:event e_updateA

mysql create event if not exists e_updateA

- on schedule every 60 second ---设置60秒执行一次

- on schedule at date_add(now(),interval 1 minute) ---在一分钟后执行

- on completion preserve

- do call update_a(); ---执行update_a()存储过程

创建Event之后,sql语句就定时执行一次。

关闭事件任务

mysql alter event e_updateA ON

- COMPLETION PRESERVE DISABLE;

开启事件任务

mysql alter event e_updateA ON

- COMPLETION PRESERVE ENABLE;


文章标题:mysql怎么做定时任务 mysql定时任务每天固定时间执行
URL分享:http://scyanting.com/article/docgjid.html