当表中的数据不再使用时,可以删除表中的所有数据,即清空该表。
OceanBase 数据库支持使用 TRUNCATE TABLE
和 DELETE FROM
语句清空指定表,但是保留表结构,包括表中定义的分区信息。从逻辑上说,TRUNCATE TABLE
语句与用于删除所有行的 DELETE FROM
语句的执行结果相同。
使用 TRUNCATE TABLE 语句
TRUNCATE TABLE
语句提供了一种快速、有效删除表中所有行的方法,同时 TRUNCATE TABLE
语句是一个 DDL 语句,不会产生任何回滚信息。
执行 TRUNCATE TABLE
语句需要具备该表的删除和创建权限。查看权限和授予权限的相关操作请参见 修改用户权限。
obclient>TRUNCATE TABLE table_name;
复制
使用 DELETE FROM 语句
也可以使用 DELETE FROM
语句删除表中的行。同时 delete
是 DML 语句,可回滚。
示例如下:
obclient>DELETE FROM table_name;
复制
使用 DELETE FROM
语句清空表时,如果表有很多行,会消耗较多系统资源。
TRUNCATE TABLE 语句与 DELETE FROM语句的差异
TRUNCATE TABLE
语句与 DELETE FROM
语句的差异如下:
TRUNCATE TABLE
语句的执行结果显示影响行数始终为 0 行。使用
TRUNCATE TABLE
语句时,表管理程序不会记录最后被使用的AUTO_INCREMENT
值,但是会从头开始计数。不支持在进行事务处理和表锁定的过程中执行
TRUNCATE TABLE
操作。只要表定义文件合法,就可以使用
TRUNCATE TABLE
语句将表重新创建为一个空表,即使数据或索引文件已经被破坏。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2730次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
809次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
457次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
416次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
368次阅读
2025-04-15 14:48:05
MogDB 发布更新,解决 openGauss 数据库在长事务情况下Ustore表膨胀问题
MogDB
302次阅读
2025-04-17 10:41:41
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
265次阅读
2025-04-15 15:27:53
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
250次阅读
2025-04-30 17:37:37
SQL优化 - explain查看SQL执行计划(下)
金同学
235次阅读
2025-05-06 14:40:00
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
220次阅读
2025-04-18 20:21:32