一、DELETE 语句
DELETE 语句是标准 SQL 语法,用于从表中移除指定记录。
二、语法
DELETE FROM tbl_name [WHERE where_condition] [ORDER BY …] [LIMIT row_count];
三、参数说明
·WHERE where_condition:(可选)指定删除条件,仅删除满足条件的记录。
·ORDER BY:(可选)指定删除顺序。
·LIMIT row_count:(可选)限制单次删除的行数。
四、使用示例
1. 创建测试表。
CREATE TABLE sbtest1 (id INT PRIMARY KEY, v1 INT, v2 INT, v3 INT);
2. 删除满足条件的数据。
DELETE FROM sbtest1 WHERE v1 = 100;
3. 删除指定数量的数据。
DELETE FROM sbtest1 WHERE v2 < 1000 LIMIT 1000;
4. 按顺序删除指定数量的数据。
DELETE FROM sbtest1 ORDER BY id LIMIT 500;
5. 删除整张表的数据。
DELETE FROM sbtest1;
五、TRUNCATE TABLE
TRUNCATE TABLE 用于快速清空整张表的数据。
六、语法
TRUNCATE TABLE tbl_name;
七、使用示例
1. 清空表数据。
— 创建测试表CREATE TABLE sbtest1 ( id INT PRIMARY KEY, v1 INT, v2 INT, v3 INT);– 快速清空表中所有数据TRUNCATE TABLE sbtest1;
2. 清除某个分区。
— 创建 RANGE 分区表CREATE TABLE sbtest2 ( id INT, create_time DATE, v1 INT, PRIMARY KEY (id, create_time))PARTITION BY RANGE (TO_DAYS(create_time)) ( PARTITION p202401 VALUES LESS THAN (TO_DAYS('2024-02-01')), PARTITION p202402 VALUES LESS THAN (TO_DAYS('2024-03-01')), PARTITION pmax VALUES LESS THAN MAXVALUE);– 快速清理 2024 年 1 月的数据ALTER TABLE sbtest2TRUNCATE PARTITION p202401;
八、注意事项
1. 删除操作前建议先备份重要数据。
2. 生产环境执行大范围删除前,建议先在测试环境验证。
3. 监控删除操作对系统性能的影响。
4. 合理设置事务超时时间,避免长事务阻塞系统。