MySQL 批量修改是指在一次 SQL 语句中同时对多条记录进行更新操作。相比于逐条更新记录,批量修改可以显著提高数据库操作的效率。
MySQL 提供了多种方式进行批量修改,主要包括:
UPDATE
语句结合 CASE
表达式:UPDATE
语句结合 CASE
表达式:INSERT ... ON DUPLICATE KEY UPDATE
:INSERT ... ON DUPLICATE KEY UPDATE
:批量修改适用于以下场景:
Lock wait timeout exceeded
错误原因:当多个事务同时对同一表进行修改时,可能会导致锁等待超时。
解决方法:
原因:在批量修改过程中,可能会有新的数据插入或修改,导致数据不一致。
解决方法:
REPEATABLE READ
或 SERIALIZABLE
)来保证数据一致性。REPEATABLE READ
或 SERIALIZABLE
)来保证数据一致性。以下是一个使用 CASE
表达式进行批量修改的示例:
UPDATE users
SET status = CASE id
WHEN 1 THEN 'active'
WHEN 2 THEN 'inactive'
WHEN 3 THEN 'pending'
END,
last_login = CASE id
WHEN 1 THEN NOW()
WHEN 2 THEN NOW()
WHEN 3 THEN NOW()
END
WHERE id IN (1, 2, 3);
通过以上方法,可以有效地进行 MySQL 的批量修改操作,并解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云