MySQL TRUNCATE TABLE语句
时间:2019-02-04 12:52:26 来源:igfitidea点击:
TRUNCATE TABLE语句用于从MySQL中的表中删除所有记录。它执行的效果与不带WHERE子句的DELETE语句相同。
警告:如果对标进行了表截断(truncate),则不能回滚TRUNCATE TABLE语句。
MySQL TRUNCATE TABLE语句语法
MySQL中TRUNCATE TABLE语句的语法为:
TRUNCATE TABLE [database_name.]table_name;
参数 | 说明 |
---|---|
database_name | 可选的。指定数据库的名称。 |
table_name | 您要截断的表。 |
说明
- 截断表时,表上的AUTO_INCREMENT计数器将被重置。(重新设置为1)
- MySQL通过删除并创建表来截断该表。因此,该表的DELETE触发器不会被触发。
- 从MySQL 5.5开始,您不能截断被另一个表中的外键引用的InnoDB表。
- 从MySQL 5.6开始,您不能截断被另一个表中的外键引用的NDB表。
MySQL TRUNCATE TABLE语句的示例
在MySQL中,如果不考虑数据回滚,则将表进行截断是清除表数据的快速方法。
在大多数情况下,MySQL处理表截断的过程与其他数据库(例如Oracle或SQL Server)的方式有所不同。
让我们看一个如何在MySQL中是使用TRUNCATE TABLE语句的。
TRUNCATE TABLE customers;
将截断customers的表,并从该表中删除所有记录。
它等同于MySQL中的以下DELETE语句:
DELETE FROM customers;
这两个语句都会删除客户表中的所有数据。两者之间的主要区别是使用DELETE语句,你可以选择回滚,而使用TRUNCATE TABLE语句,则不能回滚。
清空表时,表名可以加上数据库名。
TRUNCATE TABLE test.products;
test 为数据库名。