MySQL 批量删除是指在一次 SQL 语句中删除多条记录,而不是逐条删除。这通常通过 DELETE
语句结合 WHERE
子句来实现。
MySQL 批量删除主要有以下几种类型:
批量删除常用于以下场景:
以下是一些常见的批量删除示例:
DELETE FROM users WHERE status = 'inactive' AND last_login < '2023-01-01';
DELETE FROM orders WHERE order_id IN (1, 2, 3, 4, 5);
DELETE users, orders
FROM users
JOIN orders ON users.user_id = orders.user_id
WHERE users.status = 'deleted';
原因:
解决方法:
COMMIT
分批提交事务。SET @batch_size = 1000;
SET @offset = 0;
REPEAT
DELETE FROM users WHERE status = 'inactive' AND last_login < '2023-01-01'
LIMIT @batch_size;
SET @offset = @offset + @batch_size;
UNTIL ROW_COUNT() = 0 END REPEAT;
通过以上内容,你应该对 MySQL 批量删除有了全面的了解,包括其基础概念、优势、类型、应用场景以及常见问题的解决方法。
领取专属 10元无门槛券
手把手带您无忧上云