MySQL 存储过程(Stored Procedure)是一组为了完成特定功能的 SQL 语句集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行。
批量插入不同值指的是在一次数据库操作中插入多条记录,而不是逐条插入。
MySQL 存储过程主要分为两类:
存储过程常用于以下场景:
以下是一个简单的 MySQL 存储过程示例,用于批量插入不同值:
DELIMITER //
CREATE PROCEDURE BatchInsert(IN values_list TEXT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE value VARCHAR(255);
DECLARE value_array TEXT DEFAULT CONCAT('(', REPLACE(values_list, ',', '),('), ')');
DECLARE cur CURSOR FOR SELECT * FROM (SELECT * FROM (SELECT '1' AS col1, '2' AS col2) AS t) AS t2;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET i = 0;
OPEN cur;
read_loop: LOOP
FETCH cur INTO value;
IF i = 0 THEN
LEAVE read_loop;
END IF;
INSERT INTO your_table (col1, col2) VALUES (SUBSTRING_INDEX(SUBSTRING_INDEX(value, ',', 1), ',', -1), SUBSTRING_INDEX(SUBSTRING_INDEX(value, ',', -1), ',', 1));
SET i = i + 1;
END LOOP;
CLOSE cur;
END //
DELIMITER ;
CALL BatchInsert('("value1_1","value1_2"),("value2_1","value2_2"),("value3_1","value3_2")');
INSERT INTO ... VALUES (...), (...), ...
),并考虑分批次插入数据。希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云