首页 > 数据库 >新建一个mysql存储过程

新建一个mysql存储过程

时间:2024-04-11 17:58:48浏览次数:24  
标签:存储 workStats 新建 rosterid ftb mysql personnels DECLARE staff

CREATE DEFINER=`root`@`%` PROCEDURE `updateWorker303`()
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE rosterid VARCHAR(50);
  DECLARE phone VARCHAR(50);
  DECLARE workStats VARCHAR(50);

  DECLARE cur1 CURSOR FOR SELECT F_Id,F_Phone,F_WorkerStatus FROM ftb_personnels_staff_roster WHERE F_Id = F_UserId;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  OPEN cur1;

  read_loop: LOOP
    FETCH cur1 INTO rosterid, phone,workStats;

    IF done THEN
      LEAVE read_loop;
    END IF;


	IF EXISTS (
      SELECT 1 FROM ftb_personnels_staff_registration_form_data
      WHERE F_RosterId = rosterid AND F_FormFieldId = 'workerStatus'
    ) THEN
      -- 更新记录
      UPDATE ftb_personnels_staff_registration_form_data SET F_Phone = phone, F_Value = workStats WHERE F_RosterId = rosterid AND F_FormFieldId = 'workerStatus';
    ELSE
      -- 插入新记录
      INSERT INTO ftb_personnels_staff_registration_form_data (F_Id, F_RosterId, F_Phone, F_FormTypeId, F_FormFieldId, F_Value)
      VALUES (rosterid, rosterid, phone, '3', 'workerStatus', workStats);
    END IF;
  END LOOP;

  CLOSE cur1;
END
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `updateWorker303`()
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE rosterid VARCHAR(50);
  DECLARE phone VARCHAR(50);
  DECLARE workStats VARCHAR(50);

  DECLARE cur1 CURSOR FOR SELECT F_Id,F_Phone,F_WorkerStatus FROM ftb_personnels_staff_roster WHERE F_Id = F_UserId;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  OPEN cur1;

  read_loop: LOOP
    FETCH cur1 INTO rosterid, phone,workStats;

    IF done THEN
      LEAVE read_loop;
    END IF;


	IF EXISTS (
      SELECT 1 FROM ftb_personnels_staff_registration_form_data
      WHERE F_RosterId = rosterid AND F_FormFieldId = 'workerStatus'
    ) THEN
      -- 更新记录
      UPDATE ftb_personnels_staff_registration_form_data SET F_Phone = phone, F_Value = workStats WHERE F_RosterId = rosterid AND F_FormFieldId = 'workerStatus';
    ELSE
      -- 插入新记录
      INSERT INTO ftb_personnels_staff_registration_form_data (F_Id, F_RosterId, F_Phone, F_FormTypeId, F_FormFieldId, F_Value)
      VALUES (rosterid, rosterid, phone, '3', 'workerStatus', workStats);
    END IF;
  END LOOP;

  CLOSE cur1;
END$$
DELIMITER ;

 

标签:存储,workStats,新建,rosterid,ftb,mysql,personnels,DECLARE,staff
From: https://www.cnblogs.com/niun/p/18129757

相关文章

  • MySQL8.0加密规则修改为mysql_native_password
    参考https://blog.csdn.net/lcy1619260/article/details/132302008用软件登陆的Mysql8数据库时,报错:Authenticationplugin'caching_sha2_password'cannotbeloaded出现这个原因是mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2......
  • 新建微服务工程并形成jar包,部署到docker容器
    流程:1.创建微服务使用springcloud  2.打jar包:  3.把jar包上传到linux服务器中。4.编写dockerfile文件vimdockerfiledockerfile文件内容: 5.构建镜像 dockerbuild-tzzyy_docker:1.6. 6.运行容器dockerrun-d-p6001:6001容器Id  7.访问测......
  • mysql多版本共存问题
    进入MySQL官网正常去下载两个版本,可以参考我之前的笔记下一步的时候,记得选端口,比如我的MySQL8版本用的是3306端口,那么我的MySQL5.7.44用的就是3307端口如果要再命令行中使用指定版本的MySQL,可以结合命令去使用,命令解释如下:你可以使用以下命令通过端口号连接MySQL数据库:mysql......
  • MySQL - [07] 查看库表数据所使用的空间大小
     1、切换数据库:useinformation_schema;2、查看数据库使用大小SELECTconcat(round(sum(data_length/1024/1024),2),'MB')asdataFROMinformation_schema.tablesWHEREtable_schema='DB_Name';3、查看表使用大小SELECTconcat(ROUND(SUM(data_length......
  • 补充 windows系统安装多个MySQL版本
    一、为什么想要安装多个版本?如果你发现自身的mysql太低,不能完好的导入sql文件,又因为原本的mysql的存储重要数据,于是多开的mysql的想法出现,其实就是开个其他的端口,不要和原本的3306冲突就行。二、MySQL8.0下载MySQL8.0下载地址:https://dev.mysql.com/downloads/mysql/下载原......
  • 从 Oracle 到 MySQL 数据库的迁移之旅
    目录引言一、前期准备工作1.搭建新的MySQL数据库2.建立相应的数据表2.1数据库兼容性分析2.1.1字段类型兼容性分析2.1.2函数兼容性分析2.1.3是否使用存储过程?存储过程的个数?复杂度?2.1.4是否使用触发器?个数?使用的场景?2.2建表过程中其他需要注意的事项3.为项目配置Oracle和MyS......
  • python计算机毕设【附源码】养老院管理系统(django+mysql+论文)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着社会的快速发展,人口老龄化问题日益凸显。养老院作为为老年人提供居住、医疗、康复、娱乐等综合服务的场所,其管理水平和服务质量对老年人的生活质量有着......
  • java+saas模式医院云HIS系统源码Java+Spring+MySQL + MyCat融合BS版电子病历系统,支持
    java+saas模式医院云HIS系统源码Java+Spring+MySQL+MyCat融合BS版电子病历系统,支持电子病历四级云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务,提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医......
  • 【SQL】mysql数学函数功能介绍并举例
    mysql数学函数:ABS(x):返回x的绝对值。CEIL(x)或CEILING(x):返回大于或等于x的最小整数。FLOOR(x):返回小于或等于x的最大整数。ROUND(x,d):返回x四舍五入到小数点后d位的值。POW(x,y)或POWER(x,y):返回x的y次幂。SQRT(x):返回x的平方根。m......
  • 【SQL】mysql函数列表
    MySQL提供了大量的内置函数,用于处理各种数据类型和执行特定的操作。以下是一些主要的MySQL函数类别和其中的一些函数示例:数学函数ABS(x):返回x的绝对值。CEIL(x) 或 CEILING(x):返回大于或等于x的最小整数。FLOOR(x):返回小于或等于x的最大整数。ROUND(x,d):......