--批次处理
BEGIN;
UPDATE user SET age = age + 1 WHERE name = '张三';
UPDATE user SET age = age + 1 WHERE name = '李四';
COMMIT;
批次操作能够通过“BEGIN”和“COMMIT”关键字封装为一个事务。当事务被启动时,MySQL会锁定相应的表以确保它们在批次操作期间不会被其他会话所更新。
--批次处理事务
START TRANSACTION;
UPDATE user SET age = age + 1 WHERE name = '张三';
UPDATE user SET age = age + 1 WHERE name = '李四';
COMMIT;
批次操作不仅在事务内部可以使用,也可以单独出现。例如,大家可以使用以下语句批量删除用户表中的所有数据:
--批量删除
DELETE FROM user WHERE 1=1;
在批次操作中使用“PREPARE”和“EXECUTE”语句还可以使用参数化查询,提高批量操作的灵活性和安全性:
--参数化查询
PREPARE stmt FROM 'UPDATE user SET age = ? WHERE name = ?';
SET @name = '张三';
SET @age = 20;
EXECUTE stmt USING @age, @name;
SET @name = '李四';
SET @age = 30;
EXECUTE stmt USING @age, @name;
DEALLOCATE PREPARE stmt;
MySQL批次操作的用途非常广泛。它可用于批量插入数据、数据更新、删除、数据备份、数据恢复等操作。只要合理使用,批次操作将成为您DBA工作中不可缺少的重要工具。