关于定时执行的存储过程应该怎么写!急用谢谢大虾 在线等待
时间:2011-09-28
来源:互联网
1 vhinfo表
id name status
1 奔驰 Y
2 vhmaintain
id infoid stardate
1 1 2011-09-28 08:58:22
如果当前时间等于表2的stardate字段的时间name就把表1的status字段改为N。
这个存储过程应该怎么写 。急用 谢谢各位大虾
作者: yuanCSDN 发布时间: 2011-09-28
SET GLOBAL event_scheduler = 1;
CREATE EVENT e_totals ON SCHEDULE AT '2011-09-27 120:00:00'
DO call dd();
DROP PROCEDURE IF EXISTS `dd`$$
CREATE PROCEDURE `dd`()
BEGIN
SELECT 1 INTO @aa FROM 表2 WHERE TIME(stardate)=TIME(NOW());
IF @aa=1 THEN
UPDATE 表1 a INNER JOIN 表2 b ON a.id=b.id SET a.status='N';
END IF;
END$$
DELIMITER ;
作者: WWWWA 发布时间: 2011-09-28
DELIMITER $$
create EVENT `e` ON SCHEDULE EVERY 1 SECOND STARTS '2011-09-28 11:32:24' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
SELECT 1 INTO @aa FROM 表2 WHERE TIME(stardate)=TIME(NOW());
IF @aa=1 THEN
UPDATE 表1 a INNER JOIN 表2 b ON a.id=b.id SET a.status='N';
END IF;
END$$
DELIMITER ;
作者: WWWWA 发布时间: 2011-09-28
DELIMITER $$
create EVENT `e` ON SCHEDULE EVERY 1 SECOND STARTS '2011-09-28 11:32:24' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
UPDATE 表1 a INNER JOIN 表2 b ON a.id=b.id SET a.status='N' WHERE TIME(stardate)=TIME(NOW()) ;
END$$
DELIMITER ;
作者: WWWWA 发布时间: 2011-09-28
or
DELIMITER $$
create EVENT `e` ON SCHEDULE EVERY 1 SECOND STARTS '2011-09-28 11:32:24' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
UPDATE 表1 a INNER JOIN 表2 b ON a.id=b.id SET a.status='N' WHER……
SQL code
-- 顶,还需要注意一点:你数据库的事件定时执行功能是否已开启 ? -- 用下面的方法查看: -- 要使定时起作用 MySQL的常量GLOBAL event_scheduler必须为on或者是1 -- 查看是否开启定时器 SHOW VARIABLES LIKE '%sche%'; -- 开启定时器 0:off 1:on SET GLOBAL event_scheduler = ON; -- 开启事件 ALTER EVENT event_test ON COMPLETION PRESERVE ENABLE; -- 关闭事件 ALTER EVENT event_test ON COMPLETION PRESERVE DISABLE; -- MySQL 查看EVENT 相关信息: SELECT * FROM information_schema.EVENTS; select `name` from mysql.proc where db = 'groupon' and `type` = 'PROCEDURE';
作者: luoyoumou 发布时间: 2011-09-28
作者: rucypli 发布时间: 2011-09-28
try:
SET GLOBAL event_scheduler = 1;
CREATE EVENT e_totals ON SCHEDULE AT '2011-09-27 120:00:00'
DO call dd();
DROP PROCEDURE IF EXISTS `dd`$$
CREATE PROCEDURE `dd`()
BEGIN
SELECT 1 INTO @a……
谢谢你大哥或者大姐。麻烦你能加加注释吗。我是菜鸟
作者: yuanCSDN 发布时间: 2011-09-28
UPDATE 表1 a INNER JOIN 表2 b ON a.id=b.id SET a.status='N' WHERE TIME(stardate)=TIME(NOW()) ;
简单一些
作者: wwwwb 发布时间: 2011-09-28
如果你只是想在界面上显示,status 为N,则可以直接通过查询或者视图实现。
SQL code
select vhinfo.id,vhinfo.name,if(vhmaintain.stardate>=now(),'N','Y') as status from vhinfo inner join vhmaintain on vhinfo.id=vhmaintain.infoid
作者: ACMAIN_CHM 发布时间: 2011-09-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28