MySql创建存储过程,并使用事件定时调用
一、使用命令行创建存储过程的步骤 :参数详情参考 https://www.mysqlzh.com/
1、模板
delimiter $$ # 设置分隔符为 '$$' ,mysql默认的语句分隔符为 ';' ,这样在后续的 create 到 end 这段代码都会看成是一条语句来执行 CREATE PROCEDURE 存储过程名称(你的参数可选) BEGIN # 开始 // 要写的code
// ... END$$ # 结束
DELIMITER ; #将语句的结束符号恢复为分号
注意,创建存储过程的时候,如果采用命令行的方式,需要先修改命令结束符,将分号改成其他的符号
2、首先我们创建一个表 test_table 里面有主键id,用户名称username,有某个产品数量 counts
DROP TABLE IF EXISTS `test_table`; CREATE TABLE `test_table` (
`id` int(11) NOT NULL,
`counts` int(11) DEFAULT NULL,
`username` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `test_table`;的意思是如果当前数据库有test_table这个表就删除这个表。
3、先插入一条数据
insert into test_table(id,username,counts) VALUES (1,'张三',6);
4、创建一个存储过程 pro_demo
delimiter $$ CREATE PROCEDURE pro_demo(IN p_in int)
BEGIN update test_table set counts=counts+p_in where id=1; END$$ DELIMITER ;
PROCEDURE 是存储过程的关键字 ,pro_demo 是存储过程名称 (IN p_in int) 中 IN是输入int类型的参数 p_int
5、调用存储过程
call pro_demo(5);
结果是11

6、创建一个事件并定时调用存储过程
CREATE EVENT `gov_jm`.`event_demo`
ON SCHEDULE
EVERY '5' SECOND STARTS '2021-1-12 00:00:01'
DO call pro_demo(3);
EVENT 的是事件关键字,gov_jm是当前数据库名称,event_demo是该事件的名称 5秒中调用一次pro_demo()。
6.1开启定时器
set GLOBAL event_scheduler = 1;
到这里,定时任务已经可以执行了
6.2 查看事件运行状态
select * from mysql.event
6.3开启或者关闭事件
ALTER EVENT event_demo DISABLE;
ALTER EVENT event_demo ENABLE;
二、使用 Navicat for mysql:
创建存储过程

点击完成后在打开的界面中 begin里写你的具体内容

创建事件


选择完成后点击保存,选择保存的事件名称
MySql创建存储过程,并使用事件定时调用的更多相关文章
- mysql创建存储过程,定时任务,定时删除log
-- 创建存储过程 清除30天前的日志create procedure deleteLog()BEGINdelete from contract_vlog where create_time<D ...
- mysql创建 存储过程 并通过java程序调用该存储过程
create table users_ning(id primary key auto_increment,pwd int); insert into users_ning values(id,123 ...
- [转]MYSQL 创建存储过程
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- mysql -- 创建存储过程 往数据表中新增字段
需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作:若该字段不存在,则新增) 百度了n久,没有符合要求的例子,只有参考加自己琢磨,最终终于给弄出来了,以下是几个版本的更迭 第一版: ...
- mysql 创建存储过程
mysql 创建存储过程 实例一: CREATE PROCEDURE cp_test() BEGIN declare a int; declare b int; ; ; select a,b; END ...
- iBatis调用存储过程以及MySQL创建存储过程
首先是MySQL中创建存储过程的SQL -- 列出全部的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,假设此存储过程不存在,会提示SQL错误(130 ...
- mysql创建存储过程及调用
创建存储过程简单示例: DELIMITER //CREATE PROCEDURE ccgc()BEGINSELECT * FROM TEXT;SELECT * FROM s_user;END//DEL ...
- mysql 创建存储过程 创建1000w测试数据表
存储过程:The stored procedure 结构 CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE stored_procedure_n ...
- mysql创建存储过程中的问题
1.在创建存储过程成功后,使用call 存储过程名执行时报错: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_gener ...
随机推荐
- PC微信[多开+免扫码+防撤回撤回提示+转存语音+自动收款+远程命令]
PC端微信玩出了新花样,主要技术为Hook技术 有兴趣的小伙伴可以去了解下hook钩子技术 版本介绍: 增加转存语音到MP3(保存你重要的语音数据) 增加表图转存; 增加自动收转账和自动回复; 增加远 ...
- Java程序执行过程及内存机制
本讲将介绍Java代码是如何一步步运行起来的,其中涉及的编译器,类加载器,字节码校验器,解释器和JIT编译器在整个过程中是发挥着怎样的作用.此外还会介绍Java程序所占用的内存是被如何管理的:堆.栈和 ...
- STL——容器(Map & multimap)的拷贝构造与赋值
1. Map & multimap 的拷贝构造与赋值 map(const map &mp); //拷贝构造函数 map& operator=(con ...
- python 通过pip freeze、dowload打离线包及自动安装【适用于保密的离线环境】
python的pip是其包管理工具,相当方便好用.本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本.这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客 ...
- 主从复制直接转换MGR_5.7验证试验
环境信息 IP port role info 192.168.188.51 4000 node1 master 192.168.188.52 4000 node2 slave1 192.168.188 ...
- oracle DG查看延时时间
oracle DG查看延时时间 SQL> select value from v$dataguard_stats where name='apply lag'; 例如: SQL> sele ...
- ORA-28017: The password file is in the legacy format
1.数据库升级后修改sys密码报错. 一般从oracle 从11G(11.2.0.4)升级到12C或者19C,修改SYS密码会有以下报错: ORA-28017: The password file i ...
- 面试 11-01.ES6:模块化的使用和编译环境
11-01.ES6:模块化的使用和编译环境 #前言 #ES6的主要内容 模块化的使用和编译环境 Class与JS构造函数的区别 Promise的用法 ES6其他常用功能 本文来讲"模块化的使 ...
- css 13-CSS3属性:Flex布局图文详解
13-CSS3属性:Flex布局图文详解 #前言 CSS3中的 flex 属性,在布局方面做了非常大的改进,使得我们对多个元素之间的布局排列变得十分灵活,适应性非常强.其强大的伸缩性和自适应性,在网页 ...
- 听说特斯拉花了4个月研发出新ERP,然后很多人都疯了
欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 最近这件事儿在SAP圈里炒的挺火的,最主要是因为这几个关键词: 放弃SAP.4个月.自研ERP: 这则新闻一出来,很多人都兴高采烈,都要疯了 ...