navicate怎么在mysql的定时事务开启

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了navicate怎么在mysql的定时事务开启相关的知识,希望对你有一定的参考价值。

1、启动Navicat for mysql,新建数据库连接,打开数据库,可能有点啰嗦。

2、可以先查看定时任务的是否开启。通过以下命令:show variables like '%sche%';

3、如果其设置值为为 OFF 或 0 ,通过执行下列语句,来开启event_scheduler,set global event_scheduler =1,把设置为设为ON 或 1。

4、新建一个函数 ,取名为update_qiandao ,内容为  UPDATE week7_user SET isqiandao = 0

5、参照上图,新建一个事件  ,在定义里写 call update_qiandao()  --也就是之前定义的函数

在“计划”选项卡中设置 执行时间,这里我选择的是每天。

6、完成结束

参考技术A 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;本回答被提问者采纳
参考技术B 查看event是否开启

如果不做这一步,事件创建后,
将会发现‘事件计划已关闭。事件只能在服务器启动并开启事件计划时才能处理。'的警告。

通过下列语句l爱查询event是否开启
show variables like '%sche%';

通过执行下列语句,来开启event_scheduler
set global event_scheduler =1;

新建存储过程
可以从navicat界面的‘函数’进入,也可以直接用查询建立。

查询建立:
CREATE PROCEDURE test ()
BEGIN
update profile set single=19 where id = any (SELECT id FROM (select tmp.* from profile tmp WHERE birthday<=NOW()) as p);
END;

界面中建立:

命名为test

BEGIN
update profile set single=19 where id = any (SELECT id FROM (select tmp.* from profile tmp WHERE birthday<=NOW()) as p);
END

这个地方要注意,同一个表不能作为本表的subquery,所以就从临时表里把数据取出来,这样就不是同查同更。

3
新建Event

从界面中的‘事件’进入

定义中就直接写
call test();

计划里,基本上看看就知道什么意思
不过starts和ends的时间格式应该是:2012-12-11 19:06:00

我设成20秒一更新

经测试成功

以上是关于navicate怎么在mysql的定时事务开启的主要内容,如果未能解决你的问题,请参考以下文章

Navicate for Mysql 可以导出ER图么,怎么导出

navicate连接mysql

mysql 表支持事务的方法

用navicate for mysql 备份的数据还原的时候怎么少了好多表

navicate远程登录mysql 连接不上 错误代码36

sqlserver事务怎么开启 怎么提交 怎么回滚