mysql存储过程和定时调用

1、创建存储过程

1 create procedure proc_name()
2 begin
3 sql;
4 end

sql为定时值执行的代码,比如,定时向表里插入当前时间:INSERT into table(times) VALUES(NOW());;然后通过事件调度来定时执行该存储过程。

2、创建触发事件

1 create event if not exists event_name
2 on schedule every 30 second
3 on completion preserve
4 do call proc_name()

创建一个事件调度,在该事件调度完成后,每30秒执行调用存储过程一次。若只想让存储过程在某个时间只执行一次,则把preserve改为not preserve。

3、查看event是否开启

1 show variables like ‘%sche%‘

4、将事件计划开启

1 set global event_scheduler=1;

全局事件调度开关,1为开,0为关。

5、开启事件任务

1 alter event event_name on completion preserve enable;

打开指定的事件调度开关

6、关闭事件任务

1 alter event event_name on completion preserve disable;

关闭指定的事件调度开关

7、查看数据库所有的存储过程

1 SELECT * FROM mysql.proc

查看数据库的所有存储过程,在mysql安装完后,就默认安装有一个叫mysql的数据库,里面有一个表叫proc,通过查看这个表也可以查询数据库的所有存储过程。

8、查看数据库里所有的存储过程+内容

1 show procedure status;

9、查看存储过程或函数的创建代码

1 show create procedure you_proc_name;

10、删除存储过程

1 drop procedure proc_name;
时间: 2024-12-29 11:43:18

mysql存储过程和定时调用的相关文章

MySQL存储过程定义及调用

#MySQL存储过程 ##最简单的存储过程 DROP PROCEDURE IF EXISTS sp1; CREATE PROCEDURE sp1() COMMENT '最简单的存储过程' SELECT 1; ##调用 CALL sp1 (); ##带输入参数的存储过程 DROP PROCEDURE IF EXISTS sp2; CREATE PROCEDURE sp2(IN p INT) COMMENT '带输入参数的存储过程' SELECT p; ##调用 CALL sp2(1); #带输出参

mysql 存储过程--- 创建,调用,删除

DELIMITER //CREATE PROCEDURE p_addscore(nums INT,OUT retrows INT)BEGINDECLARE i INT DEFAULT 0;add_loop:LOOP IF i >= nums THEN LEAVE add_loop; END IF; INSERT s_musicscore (ssid,uid,score,ctime,stype) VALUES(17,UUID(),8,UNIX_TIMESTAMP(),1); SET i=i+1;E

mybatics 中调用mysql存储过程。

说起mybatics 框架,身边的java开发工程师们基本上都是耳熟能详. mybatics是apache的一个开源项目,前身为ibatics,2010年此项目由apache软件基金会迁移到了google code,mybatics的确是一款十分优秀的开源持久层框架,sql代码隔离封装.自动POJO映射.jdbc 动态sql---- mybatics的好处可以说出一箩筐,然而mybatics还有一个十分优秀的特性却往往被人忽略 ----那就是mybatics还支持存储过程的调用. 不熟悉存储过程

MySQL之存储过程创建和调用

一.MySQL存储过程_创建-调用 1.1存储过程:SQL中的"脚本"1.创建存储过程2.调用存储过程3.存储过程体4.语句标签块 二.MySQL存储过程简单介绍: 存储过程(Stored Procedure):提示:#SQL语句:先编译后执行 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点(为什么要用存储过程?): ①将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调

PHP多次调用Mysql存储过程报错解决办法

PHP多次调用Mysql数据库的存储过程会出现问题,主要问题为存储过程中执行多次SQL语句不能一一释放导致的,网上找了一些解决办法,比如使用 multi_query 然后一个一个释放,但是发现根本不适合我们的项目,我们使用CI框架写的,更多的是使用CI的数据库处理方法.所以只能另辟蹊径. 一次偶然,把Mysql链接方式改成了mysqli,两种不同的PHP连接mysql的扩展,官方在高版本中推荐使用mysqli,结果却奇迹般好了,使用Mysql长连接也行,天意么? PHP多次调用Mysql存储过程

PHP调用MYSQL存储过程实例

PHP调用MYSQL存储过程实例 标签: mysql存储phpsqlquerycmd 2010-09-26 11:10 11552人阅读 评论(3) 收藏 举报 实例一:无参的存储过程$conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");mysql_select_db('test',$conn);$sql = "create procedure myproce()beginINSERT IN

mybatis调用mysql存储过程返回结果集

存储过程中经常需要返回结果集. Mysql 中直接用 select 即可返回结果集.而 oracle 则需要使用游标来返回结果集.这一点 Mysql 相对比较方便,如下代码即可实现输出结果集: 存储过程定义: DELIMITER $$ DROP procedure IF EXISTS pro_sql_data1 $$ CREATE procedure pro_sql_data1(in sear_name varchar(2000)) BEGIN if sear_name is not null

JAVA调用mysql存储过程noAccessToProcedureBodies错误

问题:在JAVA中调用MYSQL存储过程遇到以下报错: java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true" to have dri

mybatis调用mysql存储过程返回多结果集(完整)

最近,有个开发提了个需求,希望中间件支持调用mysql存储过程时支持多结果集返回,因为某些原因我们使用了不少的存储过程,很多复杂的逻辑目前来看交互非常的多,所以从当前的现状来说,这个需求还是蛮合理的.中午抽空特地搜了下,整合完整示例如下: 1.创建测试存储过程 delimiter $$ CREATE PROCEDURE sp_multi_resultset(IN p_operator_company_no int, IN p_operator_no int, OUT p_error_code v