写一个存储过程,将一个数据表中的数据定时存入另一个表中,能够进行实时更新表中的数据,如果表中没有会直接插入新数据

CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_test`()
BEGIN
DECLARE chkc INT;
DECLARE id_tmp INT;
DECLARE age_tmp INT;
DECLARE name_tmp VARCHAR(32);
DECLARE flag INT DEFAULT TRUE;//定义一个flag设置为TRUE
DECLARE cur CURSOR FOR SELECT id FROM testname;//定义游标,以testname表中的id字段为游标进行循环遍历
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = FALSE;//如果程序有未声明的变量,flag变为FLASE循环遍历中止
OPEN cur;//打开游标
REPEAT//循环遍历
    FETCH cur INTO id_tmp;//将当前遍历到的赋值给声明的id_tmp变量
    SELECT COUNT(*) INTO chkc FROM testname_detail    WHERE id = id_tmp; 
    IF chkc = 1 THEN
    UPDATE testname_detail,testname    SET testname_detail.age = (SELECT age FROM testname WHERE id = id_tmp) WHERE testname_detail.id = id_tmp;
    ELSE
    SELECT age, name INTO age_tmp, name_tmp FROM testname WHERE id = id_tmp;
    INSERT INTO testname_detail(id,name,age) VALUES(id_tmp,name_tmp,age_tmp);
    END IF;
UNTIL flag = FALSE 
END REPEAT;
CLOSE cur;
END

_________________________________________________________________________________________

使用Navicat for mysql 实现定时执行存储过程

1-------》23------------------》

 

1查询界面输入命令,查看定时任务是否开启,未开始时OFF: show variables like '%event_scheduler%';

2.查询界面输入命令,开启定时任务: set global event_scheduler =1;(再使用show variables like '%sche%'; 可查看到为on)

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值