遇到一个问题,我需要模拟上百万数据来优化sql,线上数据down不下来,测试库又没有,写代码执行要么慢要么就是sql语句太长。
于是,直接用mysql自带的功能去实现!
简单而简单
mysql可以for循环?没错!!可以的
在 MySQL 中,通常使用存储过程(Stored Procedure)来实现类似于 for 循环的功能。存储过程允许你在数据库中定义一组 SQL 语句,并可以通过调用存储过程来执行这些语句。
话不多说,开整!!!!
DELIMITER $$CREATE PROCEDURE simple_loop()
BEGINDECLARE 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 (函数)!
开始调用
CALL simple_loop();
没错,就是CALL 就行!!!
------ end