[TOC] # TRUNCATE TABLE ## 描述 该语句用于完全清空指定表,但是保留表结构,包括表中定义的 Partition 信息。从逻辑上说,该语句与用于删除所有行的DELETE FROM语句相同。执行TRUNCATE语句,必须具有表的删除和创建权限。它属于DDL语句。 TRUNCATE TABLE 语句与 DELETE FROM 语句有以下不同: * 删减操作会取消并重新创建表,这比一行一行的删除行要快很多。 * TRUNCATE TABLE 语句执行结果显示影响行数始终显示为 0 行。 * 使用 TRUNCATE TABLE 语句,表管理程序不记得最后被使用的 AUTO\_INCREMENT 值,但是会从头开始计数。 * TRUNCATE 语句不能在进行事务处理和表锁定的过程中进行,如果使用,将会报错。 * 只要表定义文件是合法的,则可以使用 TRUNCATE TABLE 把表重新创建为一个空表,即使数据或索引文件已经被破坏。 ## 格式 ~~~ TRUNCATE [TABLE] table_name; ~~~ ## 参数解释 <table data-tag="table" id="table-qyt-h2k-1a4" class="table"><colgroup width="240" span="1" data-tag="col" id="col-uet-pq1-dis" colwidth="1*" colnum="1" colname="col1" style="width:50%" class="col"></colgroup><colgroup width="240" span="1" data-tag="col" id="col-kie-q5b-c50" colwidth="1*" colnum="2" colname="col2" style="width:50%" class="col"></colgroup><thead id="thead-4kz-prf-m18" class="thead"><tr id="tr-hjo-fw9-ar6"><th id="td-68i-kfh-xm4"><p id="p-gk6-ff7-cc7"><b>参数</b></p></th><th id="td-81q-i31-rbg"><p id="p-mr2-95l-9ls"><b>描述</b></p></th></tr></thead><tbody data-tag="tbody" id="tbody-snr-lrp-9id" class="tbody"><tr data-tag="tr" id="tr-dup-h25-9a7" class="tr"><td data-tag="td" id="td-j2e-4jk-fbb" class="td"><p data-tag="p" id="p-vao-2tg-rew" class="p">table_name</p></td><td data-tag="td" id="td-skj-4i8-9tg" class="td"><p data-tag="p" id="p-n2m-j5b-q6m" class="p">指定表名。</p></td></tr></tbody></table> ## 示例 完全清空表 tb1。 ~~~ TRUNCATE [TABLE] tb1; ~~~