mysql 写一个插入100000条数据的存储过程,并且每次循环要提交事务,并且每次commit打印提示’
时间: 2024-01-21 10:19:31 浏览: 17
可以使用以下代码实现:
```mysql
DELIMITER $$
CREATE PROCEDURE insert_data()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 100000 DO
INSERT INTO your_table (column1, column2, column3) VALUES (value1, value2, value3); --替换成你的表和列名及对应的值
IF i % 1000 = 0 THEN
COMMIT;
SELECT CONCAT('已插入', i, '条记录') AS message; --打印提示信息
END IF;
SET i = i + 1;
END WHILE;
COMMIT;
SELECT CONCAT('总共插入', i-1, '条记录') AS message; --打印提示信息
END$$
DELIMITER ;
```
注意替换代码中的 `your_table` 和 `column1/2/3` 以及对应的值。执行存储过程时,每插入1000条数据就会提交一次事务,并且打印提示信息。最后会打印总共插入的记录数。
相关问题
mysql 写一个插入100000条数据的存储过程,并且每次循环要提交事务
可以使用以下的存储过程来插入100000条数据并每次循环都提交事务:
```mysql
DELIMITER $$
CREATE PROCEDURE insert_data()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i < 100000 DO
START TRANSACTION;
INSERT INTO your_table (column1, column2, column3) VALUES ('value1', 'value2', 'value3');
COMMIT;
SET i = i + 1;
END WHILE;
END $$
DELIMITER ;
```
其中`your_table`是你要插入数据的表,`column1`、`column2`和`column3`是你要插入的列,`value1`、`value2`和`value3`是你要插入的值。你可以根据需要修改这些值。
mysql创建存储过程批量插入数据
在MySQL中,可以使用存储过程来批量插入数据。在给出的引用中,有两个示例存储过程可以实现批量插入数据。存储过程1是创建插入课程表的存储过程,存储过程2是创建插入学生信息表的存储过程。你可以根据你的需求选择其中一个存储过程使用。
存储过程1的代码示例:
```
create procedure insert_course(max_num int)
begin
declare i int default 0;
set autocommit = 0; #设置手动提交事务
repeat # 循环
set i = i + 1;
insert into course(course_id, course_name) values(rand_num(10000, 10100), rand_string(6));
until i = max_num
end repeat;
commit; # 提交事务
end
```
存储过程2的代码示例:
```
create procedure insert_stu(max_num int)
begin
declare i int default 0;
set autocommit = 0; # 设置手动提交事务
repeat # 循环
set i = i + 1; # 赋值
insert into student_info (course_id, class_id, student_id, name) values (rand_num(10000, 10100), rand_num(10000, 10200), rand_num(1, 200000), rand_string(6));
until i = max_num
end repeat;
commit; # 提交事务
end
```
调用存储过程2,插入学生表1000000条数据的示例:
```
call insert_stu (1000000);
```
这将调用存储过程2,并向学生信息表插入1000000条数据。
如果你想查询学生信息表中的记录数量,可以使用以下语句:
```
select count(*) from student_info si;
```
这将返回学生信息表中的记录数量。