MySQL DELETE 语句

用 DELETE 删除行,同样必须带 WHERE。

Beginner
Key PointsDELETE 删行不删表;带 LIMIT 可分批删,避免长事务锁表。

基本语法

SQL
DELETE FROM users WHERE username = 'dave';
Output
Query OK, 1 row affected (0.01 sec)

分批删除

SQL
-- 每次只删 1000 行,循环执行,避免长时间锁表
DELETE FROM users WHERE age < 18 LIMIT 1000;
Output
Query OK, 1000 rows affected (0.12 sec)
To empty a whole table use TRUNCATE TABLE — it resets auto-increment and is far faster, but is DDL (no rollback, no WHERE). Use DELETE for partial row removal.

Friends & Partners