一、使用命令行创建存储过程的步骤 :参数详情参考 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创建存储过程,并使用事件定时调用的更多相关文章

  1. mysql创建存储过程,定时任务,定时删除log

    -- 创建存储过程 清除30天前的日志create procedure deleteLog()BEGINdelete from contract_vlog where create_time<D ...

  2. mysql创建 存储过程 并通过java程序调用该存储过程

    create table users_ning(id primary key auto_increment,pwd int); insert into users_ning values(id,123 ...

  3. [转]MYSQL 创建存储过程

    MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...

  4. mysql -- 创建存储过程 往数据表中新增字段

    需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作:若该字段不存在,则新增) 百度了n久,没有符合要求的例子,只有参考加自己琢磨,最终终于给弄出来了,以下是几个版本的更迭 第一版: ...

  5. mysql 创建存储过程

    mysql 创建存储过程 实例一: CREATE PROCEDURE cp_test() BEGIN declare a int; declare b int; ; ; select a,b; END ...

  6. iBatis调用存储过程以及MySQL创建存储过程

    首先是MySQL中创建存储过程的SQL -- 列出全部的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,假设此存储过程不存在,会提示SQL错误(130 ...

  7. mysql创建存储过程及调用

    创建存储过程简单示例: DELIMITER //CREATE PROCEDURE ccgc()BEGINSELECT * FROM TEXT;SELECT * FROM s_user;END//DEL ...

  8. mysql 创建存储过程 创建1000w测试数据表

    存储过程:The stored procedure 结构 CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE stored_procedure_n ...

  9. mysql创建存储过程中的问题

    1.在创建存储过程成功后,使用call 存储过程名执行时报错: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_gener ...

随机推荐

  1. tensorflow 小记——如何对张量做任意行求和,得到新tensor(一种方法:列表生成式)

    希望实现图片上的功能 import tensorflow as tfa = tf.range(10,dtype=float)b = aa = tf.reshape(a,[-1,1])a = tf.ti ...

  2. Ubuntu 16.04 系统基础开发环境搭建

    1.安装 Git sudo apt-get update sudo apt-get install git Do you want to continue? [Y/n] Y git --version ...

  3. 3款pdf插件介绍

    1.pdf.js:推荐使用.小窗口可以使用iframe来解决.ie8及以下不支持,但是360的兼容模式ie8下可以在新标签页中打开,在iframe中打不开,ie8中在新标签页也不支持打开.可使用ua- ...

  4. Java-静态关键字Static&静态代码块

    静态成员变量:(static修饰变量) 如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类.多个对象共享同一份数据. 静态方法:(static修饰方法) 一旦使用 ...

  5. celery 原理和组件

    Celery介绍 https://www.cnblogs.com/xiaonq/p/11166235.html#i1 1.1 celery应用举例 Celery 是一个 基于python开发的分布式异 ...

  6. oracle修改数据文件目录

    一.停库修改数据文件目录.文件名 1.当前数据文件目录 SQL> select file_name from dba_data_files; FILE_NAME ---------------- ...

  7. double类型和int类型的区别

    引例: double a=19*3.3; System.out.print(a); 结果为62.9999996,不是62.7:这里不单纯是因为给的是double类型 (1) 62.7 和 62.699 ...

  8. WindowsPhone8.1 开发-- 二维码扫描

    随着 WinRT 8.1 API 的发布,Windows 8.1 和 Windows Phone 8.1 (基于 WinRT) 应用程序的开发模型经历了戏剧性的收敛性.与一些特定于平台的考虑,我们现在 ...

  9. 22期老男孩Ptython全栈架构师视频教程

    老男孩Ptython全栈架构师视频教程 Python最新整理完整版22期视频教程 超60G课程容量<ignore_js_op> <ignore_js_op> <ignor ...

  10. Laravel Argument 1 passed to App\Models\Recipients\AlertRecipient::__construct() must be an instance of App\Models\Recipients\string, string given,

    今天测试snipet的计划任务,库存低于警告值的时候,时候会会自动发送邮件到邮箱 class SendInventoryAlerts extends Command { /** * The name ...