当前位置: 首页 > news >正文

mysql_存储过程

举例子

createdefiner = root@`%` procedure insert_batch_test(IN START int(10), IN max_num int(10))
BEGINDECLAREi INT DEFAULT 0;SET autocommit = 0;REPEATSET i = i + 1;INSERT INTO test (std, score)VALUES (CEILING(RAND() * 10 + 100), CEILING(RAND() * 50 +50));UNTIL i = max_numEND REPEAT;COMMIT;END;

这是一个 MySQL 存储过程,主要功能是往名为 test 的表中插入一批数据,插入的数据包括两个字段std 和score。以下是对存储过程代码的解释:

  1. 存储过程的名称是 insert_batch_test
  2. 存储过程的定义者(创建者)是root,并且在任何主机上都能够被调用(definer =root@'%')。
  3. 存储过程接受两个输入参数:STARTmax_num,它们的数据类型都是整数(int(10))。
  4. 存储过程使用 DECLARE 关键字声明了一个局部变量 i,初始化为 0。
  5. SET autocommit = 0; 语句将事务的自动提交模式关闭这意味着插入数据后需要手动执行 COMMIT; 才能提交事务
  6. 使用 REPEAT ... UNTIL 循环,循环体中包含了一条插入语句,向test 表中插入数据。
    • CEILING(RAND()*10+100) 生成一个随机数,并将其上取整,确保在一定范围内。
    • 插入的数据的std 和score 字段都是随机生成的整数。
    • 循环的次数受到输入参数 max_num 的控制。
  7. UNTIL i = max_num 表示循环的条件,当 i 达到 max_num 时跳出循环
  8. COMMIT; 语句用于手动提交事务,确保之前的插入操作生效。

这个存储过程的作用是往表中插入一批随机生成的数据,批量插入的数量由输入参数 max_num 控制。如果你调用这个存储过程,需要提供适当的参数值。

http://www.lryc.cn/news/269988.html

相关文章:

  • uboot学习及内核更换_incomplete
  • KVM 自动化脚本的使用及热/冷迁移
  • Unity中Shader裁剪空间推导(在Shader中使用)
  • ES的使用(Elasticsearch)
  • 车牌识别技术,如何用python识别车牌号
  • 爬虫工作量由小到大的思维转变---<第二十五章 Scrapy开始很快,越来越慢(追溯篇)>
  • Servlet入门
  • 【C#与Redis】--高级主题--Redis 哨兵
  • linux安装python
  • 【如何破坏单例模式(详解)】
  • 什么是 SPI,它有什么用?
  • FolkMQ 新的消息中间件,v1.0.25
  • 小程序入门-登录+首页
  • React快速入门之组件
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • Hadoop入门学习笔记——六、连接到Hive
  • 【K8S 基本概念】Kurbernetes的架构和核心概念
  • WPS复选框里打对号,显示小太阳或粗黑圆圈的问题解决方法
  • 对“企业数据资源相关会计处理暂行规定“的个人理解
  • JavaScript:函数隐含对象arguments/剩余参数. . .c/解构赋值
  • MFC窗体背景颜色的设置、控件白色背景问题、控件文本显示重叠问题、被父窗体背景覆盖的问题
  • c++简易AI
  • java获取两个List集合之间的交集、差集、并集
  • 轻松实现iphone截图传电脑
  • 【网络安全】upload靶场pass1-10思路
  • 共享单车之数据存储
  • Flink(十一)【状态管理】
  • 【三维目标检测/自动驾驶】IA-BEV:基于结构先验和自增强学习的实例感知三维目标检测(AAAI 2024)
  • wefew
  • Springboot整合JSP-修订版本(Springboot3.1.6+IDEA2022版本)