DELETE / TRUNCATE
, TRUNCATE and
Syntax
DELETE FROM table [WHERE conditions] [ORDER BY ...] [LIMIT count]; TRUNCATE TABLE table;
Parameters
| Parameters | Description | Examples | Level |
|---|---|---|---|
WHERE |
DELETE FROM logs WHERE created_at < '2025-01-01'; |
Common | |
LIMIT |
DELETE FROM logs WHERE level = 'debug' LIMIT 10000; |
Advanced | |
TRUNCATE |
() | TRUNCATE TABLE tmp_data; |
|
ORDER BY |
DELETE FROM logs ORDER BY created_at ASC LIMIT 1000; |
Advanced | |
JOIN |
DELETE o FROM orders o JOIN users u ON o.user_id = u.id WHERE u.status = -1; |
Advanced |
Examples
DELETE FROM sessions WHERE expire_at < NOW();
-- DELETE FROM operation_logs WHERE created_at < '2025-01-01' ORDER BY id ASC LIMIT 10000; -- affected rows = 0
, 1
TRUNCATE
-- DELETE, TRUNCATE TABLE temp_import_data;
TRUNCATE ID, DELETE
(Recommended)
--, UPDATE users SET deleted_at = NOW(), status = -1 WHERE id = 1001; -- SELECT * FROM users WHERE deleted_at IS NULL;
Recommended,
Common Errors
ERROR 1175: You are using safe update modeDELETE WHERE.,
ERROR 1451: Cannot delete or update a parent row: a foreign key constraint fails., ON DELETE CASCADE
Tips
- ( deleted_at )
- DELETE SELECT COUNT
- TRUNCATE DELETE,