mysql 存储过程批量insert
时间: 2024-11-12 10:40:48 浏览: 28
MySQL存储过程是一个预编译的SQL脚本,它可以在服务器端执行,通常用于封装复杂的业务逻辑或数据处理任务,包括批量插入数据。在批量插入数据时,可以使用循环、游标或者其他控制结构来一次性插入多行记录,提高效率。
例如,创建一个存储过程批量插入用户信息:
```sql
DELIMITER //
CREATE PROCEDURE BatchInsertUsers (
IN users_data TEXT -- 这里假设users_data是一个包含多行JSON格式数据的字符串
)
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE user_row JSON;
WHILE i < LENGTH(users_data) DO
SET user_row = SUBSTRING_INDEX(users_data, ',', i+1); -- 分割每一行数据
INSERT INTO users (username, email) VALUES (user_row->>'username', user_row->>'email');
SET i = i + 1;
END WHILE;
END; //
DELIMITER ;
```
调用这个存储过程,只需要将包含所有用户数据的字符串作为参数传递进去:
```sql
CALL BatchInsertUsers('["Alice", "alice@example.com"], ["Bob", "bob@example.com"]');
```
阅读全文