MYSQL 使用存储过程批量更新表数据
时间: 2023-07-25 18:08:46 浏览: 104
用SQL批量插入数据的存储过程
是的,MYSQL可以使用存储过程来批量更新表数据。以下是一个简单的示例:
假设我们有一个名为“employees”的表,其中包含id、name和salary三个列。我们想要将所有员工的薪水增加10%。
我们可以编写以下存储过程:
```
CREATE PROCEDURE update_salary()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE emp_id INT;
DECLARE emp_salary DECIMAL(10,2);
DECLARE cur CURSOR FOR SELECT id, salary FROM employees;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur INTO emp_id, emp_salary;
IF done THEN
LEAVE read_loop;
END IF;
UPDATE employees SET salary = emp_salary * 1.1 WHERE id = emp_id;
END LOOP;
CLOSE cur;
END;
```
在这个存储过程中,我们使用了游标(cursor)来遍历所有的员工记录,并通过UPDATE语句来更新每个员工的薪水。最后,我们关闭游标并结束存储过程。
要执行这个存储过程,只需使用以下语句:
```
CALL update_salary();
```
这将会批量更新表中的所有记录。
阅读全文