DELETE语句删除单表与多表数据
发布时间:2026-08-09 | 浏览:1
DELETE 用于删除表中的数据。
执行 DELETE 命令时,表中必须存在主键。
执行 DELETE 命令时,表中必须存在主键。
DELETE 暂不支持使用表的别名。
DELETE 暂不支持使用表的别名。
不建议通过 DELETE 命令删除全表、全分区的数据,建议使用 TRUNCATE TABLE 、 TRUNCATE TABLE PARTITION 命令,详情请参见 TRUNCATE TABLE 。
不建议通过 DELETE 命令删除全表、全分区的数据,建议使用 TRUNCATE TABLE 、 TRUNCATE TABLE PARTITION 命令,详情请参见 TRUNCATE TABLE 。
删除多表数据时,一条 SQL 语句只能删除一张表,不支持同时删除多张表。
删除多表数据时,一条 SQL 语句只能删除一张表,不支持同时删除多张表。
单表删除是指查询一个表,并删除满足 WHERE 子句指定条件的数据。多表删除是指单个 SQL 语句进行多表关联查询,并在一个表中删除满足 WHERE 子句指定条件的数据。
仅 3.2.0.0 及以上内核版本的集群支持多表删除。
请 在 云原生数据仓库 AnalyticDB MySQL 控制台 集群信息 页面的 配置信息 区域, 查看和升级内核版本 。
删除 customer 表中 name 为 张三 的数据。 DELETE FROM customer WHERE customer_name='张三';
删除 customer 表中 name 为 张三 的数据。
删除 customer 表中的多行。 DELETE FROM customer WHERE age<18;
删除 customer 表中的多行。
在 customer 表中,查询并删除 id 与 orders 表中 id 相同,且 age 为 18 的数据。 DELETE customer FROM customer JOIN orders ON customer.id = orders.id WHERE customer.age = 18;
在 customer 表中,查询并删除 id 与 orders 表中 id 相同,且 age 为 18 的数据。
为什么在删除表中数据后,存储空间占用没有减少?
原因:DELETE 是异步操作,执行 DELETE 语句删除表数据后,存储空间占用不会立即减少。
解决方法:在执行 DELETE 语句后,触发 BUILD 任务。
AnalyticDB for MySQL 集群会在满足一定条件后 自动触发 BUILD 任务 ,您也可以 手动触发 BUILD 任务 。