mysql存储过程游标插入数据
时间: 2023-10-27 16:03:39 浏览: 85
游标是MySQL中一种用于遍历数据的对象,可以在存储过程中使用游标来逐行处理数据并进行插入操作。
以下是一个简单的示例,演示了如何使用游标在存储过程中插入数据:
```
DELIMITER //
CREATE PROCEDURE insert_data()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE name VARCHAR(255);
DECLARE age INT;
DECLARE cur CURSOR FOR SELECT name, age FROM persons;
-- 打开游标
OPEN cur;
-- 循环处理游标数据
loop_label: LOOP
-- 获取下一行数据
FETCH cur INTO name, age;
-- 判断是否结束
IF done THEN
LEAVE loop_label;
END IF;
-- 插入数据
INSERT INTO new_persons(name, age) VALUES (name, age);
END LOOP;
-- 关闭游标
CLOSE cur;
END//
DELIMITER ;
```
在上面的示例中,我们创建了一个名为`insert_data`的存储过程,该过程使用游标遍历了`persons`表中的所有数据,并将每行数据插入到`new_persons`表中。请注意,`persons`表和`new_persons`表需要自行创建。
要调用此存储过程,请使用以下语句:
```
CALL insert_data();
```
这将执行存储过程并向`new_persons`表中插入所有数据。
阅读全文