MySQL DELETE 语句
用 DELETE 删除行,同样必须带 WHERE。
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.基本语法
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)要清空整张表请用
TRUNCATE TABLE,它重置自增计数器且快得多;但它是 DDL、不可回滚,也不能带 WHERE。删全表数据用 TRUNCATE,删部分行用 DELETE。