mysql,for循环执行sql

遇到一个问题,我需要模拟上百万数据来优化sql,线上数据down不下来,测试库又没有,写代码执行要么慢要么就是sql语句太长。

于是,直接用mysql自带的功能去实现!

简单而简单

mysql可以for循环?没错!!可以的

在 MySQL 中,通常使用**存储过程(Stored Procedure)**来实现类似于 for 循环的功能。存储过程允许你在数据库中定义一组 SQL 语句,并可以通过调用存储过程来执行这些语句。

话不多说,开整!!!!

sql 复制代码
DELIMITER $$

CREATE PROCEDURE simple_loop()
BEGIN
    DECLARE i INT DEFAULT 1;
    DECLARE max_count INT DEFAULT 10;
    
    WHILE i <= max_count DO
        -- 在这里放置你想要循环执行的 SQL 语句
        INSERT INTO your_table (column1, column2) VALUES (i, 'some value');
        
        SET i = i + 1;
    END WHILE;
END$$

DELIMITER ;

simple_loop : 存储过程名称,可以自定义,记下来!!

DECLARE max_count INT DEFAULT 10; 就是循环的次数

i 和 max_count : 自定义,就是for循环

好了,定义好了,为啥我执行没反应呢?

莫慌,当前只是定义,我们需要调用,没错就是存储过程就是个method (函数)!

开始调用

sql 复制代码
CALL simple_loop();

没错,就是CALL 就行!!!

------ end

相关推荐
hutengyi11 分钟前
保姆级JavaWeb项目创建、部署、连接数据库(tomcat)
数据库·tomcat·firefox
wuyikeer12 分钟前
docker 安装 mysql
mysql·adb·docker
寰宇的行者16 分钟前
深入理解 Django 异步视图中的 `sync_to_async` 与协程
数据库·django
草莓熊Lotso19 分钟前
MySQL 索引特性与性能优化全解
android·运维·数据库·c++·mysql·性能优化
大龄烤红薯19 分钟前
docker-【容器数据存储位置分析】以Mysql容器为例
mysql·adb·docker
薛定谔的悦24 分钟前
站控显示下级从控EMS的版本信息开发(设计多线程和TCP通讯)
linux·网络·数据库·网络协议·tcp/ip·ems
bcbobo21cn26 分钟前
C#使用一维数组作为参数传递
开发语言·数据库·c#·一维数组
ruiang28 分钟前
如何在 Ubuntu 22.04 上安装 MySQL
linux·mysql·ubuntu
荒川之神30 分钟前
Hive 拉链表实例
开发语言·数据库
ZzzZZzzzZZZzzzz…31 分钟前
MySQL备份还原方法1---mysqldump
linux·运维·数据库·mysql·还原备份