MySQL 的 TRUNCATE
语句删除表及其所有记录,然后将其重新创建为空表。它类似于删除表中所有行的 DELETE
语句(即不带 WHERE
子句的 DELETE
语句)。
警告
一旦你TRUNCATE
一个表,你就无法撤消它,所以执行它时要非常小心!
需要注意的几点:
-
您无法对由外键约束引用的InnoDB 表执行
TRUNCATE
。 -
一旦您
TRUNCATE
表,任何AUTO_INCREMENT
值都会重置。
用法
TRUNCATE [TABLE] table_name;
例子
请考虑下表了解学生是否持有驾驶执照:
student_id |
full_name |
年龄 |
has_license |
---|---|---|---|
1 |
天空镇 |
17 |
0 |
2 |
本·戴维斯 |
19 |
1 |
3 |
特拉维斯·苹果 |
18 |
0 |
4 |
亚瑟·大卫 |
16 |
0 |
5 |
本杰明镇 |
17 |
1 |
可以使用此处的代码创建上述示例表。
要从 drivers_license
表中删除所有记录:
TRUNCATE drivers_license;
Query OK, 0 rows affected (0.02 sec)
请注意,无论删除多少行,返回的响应都会显示 "0 rows affected”
。
现在检查 drivers_license
表的内容:
SELECT * FROM drivers_license;
Empty set (0.00 sec)
我们可以看到所有记录现在都已被删除。
相关用法
- MySQL TRUNCATE方法用法及代码示例
- MySQL TRUNCATE()用法及代码示例
- MySQL TRIM()用法及代码示例
- MySQL TRIM方法用法及代码示例
- MySQL TIME_FORMAT方法用法及代码示例
- MySQL TIMEDIFF方法用法及代码示例
- MySQL TIME方法用法及代码示例
- MySQL TO_DAYS方法用法及代码示例
- MySQL TIMESTAMPDIFF()用法及代码示例
- MySQL TAN方法用法及代码示例
- MySQL TIMESTAMP方法用法及代码示例
- MySQL TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT用法及代码示例
- MySQL TIME_TO_SEC方法用法及代码示例
- MySQL TIME用法及代码示例
- MySQL TAN()用法及代码示例
- MySQL TO_BASE64方法用法及代码示例
- MySQL TIMESTAMPDIFF方法用法及代码示例
- MySQL TIME()用法及代码示例
- MySQL TIMESTAMPADD方法用法及代码示例
- MySQL TO_SECONDS方法用法及代码示例
- MySQL Trim()用法及代码示例
- MySQL ROUND()用法及代码示例
- MySQL REPEAT()用法及代码示例
- MySQL POWER()用法及代码示例
- MySQL LEAD() and LAG()用法及代码示例
注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | TRUNCATE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。