mysql 存储过程每天不自动执行。

breezylife1 2012-10-31 09:12:50
event事件语句:
DELIMITER $$

ALTER DEFINER=`root`@`%` EVENT `buysell_ev` ON SCHEDULE EVERY 1 DAY STARTS '2011-05-28 14:00:00' ON COMPLETION NOT PRESERVE DISABLE ON SLAVE DO BEGIN
CALL buy_sell();
END$$

DELIMITER ;

buy_sell()存储过程语句:

DELIMITER $$

USE `destoon`$$

DROP PROCEDURE IF EXISTS `buy_sell`$$

CREATE DEFINER=`root`@`%` PROCEDURE `buy_sell`()
BEGIN
INSERT INTO test_buysell(mark,DATE,temid,ADDTIME,username,ADDDATE,title,adittime,editdate,vip,catname) SELECT 1,DATE_FORMAT(NOW(),'%Y-%m-%d'),a.itemid,FROM_UNIXTIME(a.ADDTIME),a.username,a.ADDDATE,a.title,FROM_UNIXTIME(a.edittime),a.editdate,a.vip,b.catname FROM de_sell a,de_category b WHERE a.catid=b.catid AND a.STATUS='3' AND a.ADDDATE=DATE_FORMAT(NOW(),'%Y-%m-%d');
INSERT INTO test_buysell(mark,DATE,temid,ADDTIME,username,ADDDATE,title,adittime,editdate,vip,catname) SELECT 2,DATE_FORMAT(NOW(),'%Y-%m-%d'),a.itemid,FROM_UNIXTIME(a.ADDTIME),a.username,a.ADDDATE,a.title,FROM_UNIXTIME(a.edittime),a.editdate,a.vip,b.catname FROM de_sell a,de_category b WHERE a.catid=b.catid AND a.STATUS='3' AND a.editdate=DATE_FORMAT(NOW(),'%Y-%m-%d');
INSERT INTO test_buysell(mark,DATE,temid,ADDTIME,username,ADDDATE,title,adittime,editdate,vip,catname) SELECT 3,DATE_FORMAT(NOW(),'%Y-%m-%d'),a.itemid,FROM_UNIXTIME(a.ADDTIME),a.username,a.ADDDATE,a.title,FROM_UNIXTIME(a.edittime),a.editdate,a.vip,b.catname FROM de_buy a,de_category b WHERE a.catid=b.catid AND a.STATUS='3' AND a.ADDDATE=DATE_FORMAT(NOW(),'%Y-%m-%d');
INSERT INTO test_buysell(mark,DATE,temid,ADDTIME,username,ADDDATE,title,adittime,editdate,vip,catname) SELECT 4,DATE_FORMAT(NOW(),'%Y-%m-%d'),a.itemid,FROM_UNIXTIME(a.ADDTIME),a.username,a.ADDDATE,a.title,FROM_UNIXTIME(a.edittime),a.editdate,a.vip,b.catname FROM de_buy a,de_category b WHERE a.catid=b.catid AND a.STATUS='3' AND a.editDATE=DATE_FORMAT(NOW(),'%Y-%m-%d');
END$$

DELIMITER ;


谁能帮我解决一下 谢谢 !
...全文
398 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-11-01
  • 打赏
  • 举报
回复
没看到你的 buysell_ev 在EVENT列表中啊。
breezylife1 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
show event;
show variables like 'event_scheduler';

贴出来看一下。
[/Quote]
SHOW EVENTS;
*************************** 1. row ***************************
Db: destoon
Name: createtb_ev
Definer: root@%
Time zone: SYSTEM
Type: RECURRING
Execute at: NULL
Interval value: 1
Interval field: DAY
Starts: 2011-05-28 09:25:00
Ends: NULL
Status: SLAVESIDE_DISABLED (这个状态存储过程不会执行的。) Originator: 1
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: latin1_swedish_ci
*************************** 2. row ***************************
Db: destoon
Name: createtb_ev1
Definer: root@%
Time zone: SYSTEM
Type: RECURRING
Execute at: NULL
Interval value: 1
Interval field: DAY
Starts: 2011-05-28 09:21:00
Ends: NULL
Status: ENABLED (这个状态存储过程可以执行的) Originator: 1
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: latin1_swedish_ci


mysql> show variables like 'event_sche%'; 这个都是开启的。
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
1 row in set (0.01 sec)
breezylife1 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
没看到你的 buysell_ev 在EVENT列表中啊。
[/Quote]
现在已经可以用了 要把DISABLE ON SLAVE 这个去掉!但是现在又有一个问题了,主主同步的两台机子,存储过程也会同步的。当我在另一台把存储过程删掉,这边也会同时删掉,我修改里面的内容,倒是不会改变的。
问:我如何能使得只在一台服务器上执行,另一台不使用存储过程呢?
rucypli 2012-10-31
  • 打赏
  • 举报
回复
单独执行存储过程可以执行吗
WWWWA 2012-10-31
  • 打赏
  • 举报
回复
SHOW VARIABLES LIKE 'event_scheduler';

SET GLOBAL event_scheduler = 1;
or
SET GLOBAL event_scheduler = ON;
ACMAIN_CHM 2012-10-31
  • 打赏
  • 举报
回复
show event;
show variables like 'event_scheduler';

贴出来看一下。
WWWWA 2012-10-31
  • 打赏
  • 举报
回复
在MYSQL中运行`buy_sell`能否成功,你怎么判断没有运行此SP?
breezylife1 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
单独执行存储过程可以执行吗
[/Quote]
sqlyog中直接输入call sell_buy()会生成那些数据的。

两台服务器做的主主同步的,当我把disabled on slave去掉之后,就能运行了。
但是在我只想在一台服务器上面运行这个存储过程。
breezylife1 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
SHOW VARIABLES LIKE 'event_scheduler';

SET GLOBAL event_scheduler = 1;
or
SET GLOBAL event_scheduler = ON;
[/Quote]
这些都开启了的

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧