mysql如何做计划任务_简单的mysql 过程&计划任务

本文介绍了如何在MySQL中创建过程和事件来实现数据的定时插入。通过CREATE PROCEDURE定义了一个过程,该过程接受输入参数,结合SQL操作生成插入数据。然后,利用CREATE EVENT创建了一个每10秒执行一次的事件,调用该过程以定时插入数据。这种方法简化了复杂SQL的执行,并提供了自动化的数据管理方式。
摘要由CSDN通过智能技术生成

首先讲讲过程是什么东西, 过程差不多就是SQL用的java之于方法.

把一段sql做成过程后一个简单的调用就可以批量执行这些sql,很方便.

其实就像java后台写个执行复杂sql的方法,你只是把这段sql存到数据库里了而已.

mysql里面有"过程"和"函数"两个概念, 基本上前者用来进行一些数据表改动或者返回数据表等大量数据,

CREATE PROCEDURE test_procedure (IN inpput INT)

BEGIN

set @VAR= concat("test", inpput, (select CAST(count(*) AS CHAR) from source));

insert into source (linked,note) values(@var, 'test');

END

第一行create procedure后面跟过程名称,括号里面填写参数,

后者用于返回一些小的参数用于执行其他sql. 两者对比另有他人文章我就不多说明.

在这篇里面讲一下怎样实现定时插入数据的功能

下面结合具体代码解释

往表"source"插入数据的过程创建:

参数有输入,输出,输入并输出,详细参阅其他文章吧, 这里简单输入一个数字作为字段内容

然后接begin, end,里面填写要执行的sql

@VAR是变量, 用来生成个插入用的文字,这里的效果是等于test+输入的数字+source表的行数

执行一下,test_procedure过程就创建好了,调用的方法是CALL 过程名,例如下面的

CALL test_procedure(123)

下面就是建立一个事件定时执行这个插入过程

CREATE EVENT test_event

ON SCHEDULE EVERY 10 SECOND

ON COMPLETION NOT PRESERVE

DISABLE

DO

CALL test_procedure(123);

create event 事件名

on schedule后面设定事件发生时间,可以设定一个时间点,也可以设定周期,这里设置周期10秒

on completion设置事件结束后是否销毁,not preserve是不保存,销毁,去掉not就保留着,可以以后再次启动事件

下面一个disable,enable表示创建时候是否就启动

Do 后面就是具体执行的内容了,这里调用test_procedure过程

最后控制事件的启动与停止,如下

ALTER EVENT test_event ENABLE;

用alter event 事件名 状态来改变,enable就启动了,看看表格发现数据不断增多,可以用来测试了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值