使用Navicat12创建存储过程,执行定时事件

2023-11-20 15:20

本文主要是介绍使用Navicat12创建存储过程,执行定时事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用Navicat12创建存储过程,执行定时事件

需求说明:

       一个用户在他第一次添加手机号码的时候自动将他绑定到用户表的phone字段

方法一:创建存储过程,执行定时事件

1      创建两张表

1.1      用户表tbl_user

CREATE TABLE `tbl_user`  (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',`age` int(11) NULL DEFAULT NULL COMMENT '年龄',`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '电话号码',PRIMARY KEY (`id`) USING BTREE
)

1.2      用户手机表tbl_phone

CREATE TABLE `tbl_user_phone`  (`uid` int(11) NOT NULL COMMENT '用户编号',`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号码',`option` tinyint(2) NULL DEFAULT 0 COMMENT '是否默认手机号码:默认0',`ctime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (`uid`) USING BTREE
)

2      创建存储过程pro_user_update_phone执行下面的sql

CREATE PROCEDURE pro_user_update_phone()
BEGINUPDATE tbl_user a INNER JOIN(SELECT u.id,up.phonefrom tbl_user u,tbl_user_phone up WHERE u.id=up.uid AND u.phone is NULL AND up.`option`=1) AS c SET a.phone=c.phone  AND a.id=c.id;
END;

3      创建事件

    3.1调用储存过程:CALL pro_user_update_phone(下图中标记1)

    3.2调用储存过程:启用事件,将事件状态修改为ENABLE(下图中标记2)

    3.3选择事件中的计划设置时间执行时间(下图中表示1分钟执行一次)


4      设置mysql

 

-- 查看并打开event_scheduler调度事件:
-- 如果event_scheduler值为OFF则使用set global event_scheduler =1;打开,以后需要关闭使用set global event_scheduler =0关闭
show variables like '%sche%';

 这样event_update_user_phone每格一分钟就会去查询相应的phone数据更新到tbl_user的phone上面

方法二:使用触发器在插入tbl_user_phone数据的时候和更新数据的时候户触发执行储存过程pro_user_update_phone

    1.选择tbl_user_phone表->触发器->创建t_create_user_phone触发器->勾选插入->定义:CALL pro_user_update_phone然后创建另外一个触发器t_update_user_phone->勾选更新->定义CALL pro_user_update_phone

2      测试

    2.1先插入一条数据到tbl_user,再插入一条uid为tbl_user的id数据并且option=0到tbl_user_phone,看到tbl_user没有更新(正确)

    2.2先插入一条数据到tbl_user,再插入一条uid为tbl_user的id数据并且option=1到tbl_user_phone,看到tbl_user更新了(正确)

    2.3先插入一条数据到tbl_user,再插入一条uid为tbl_user的id数据并且option=0到tbl_user_phone,然后将option=0改为option=1,看到tbl_user更新了(正确)

  1. 作者:天空蓝蓝的     www.lskyf.xyz 
  2. 版权所有,欢迎保留原文链接进行转载:)

这篇关于使用Navicat12创建存储过程,执行定时事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/395548

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与