暂无图片
暂无图片
8
暂无图片
暂无图片
暂无图片

数据库对象管理MySQL模式清空表

2023-03-29
353

当表中的数据不再使用时,可以删除表中的所有数据,即清空该表。

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论