SQL 中 DROP 和 TRUNCATE 的区别
1. DROP语句
DROP 是一个 DDL(数据定义语言)命令,用于删除该表的表定义和索引、数据、约束、触发器等。性能方面,DROP 命令执行速度很快,但比 TRUNCATE 慢,因为它会引起并发症。与 DELETE 不同,我们无法在使用 DROP 命令后回滚数据。在 DROP 命令中,表空间会从内存中释放出来,因为它会永久删除表及其所有内容。
DROP 命令的语法 –
2. TRUNCATE语句
TRUNCATE 是一个 DDL(数据定义语言)命令。它用于从表中删除所有元组。与 DROP 命令一样,TRUNCATE 命令也不包含 WHERE 子句。TRUNCATE 命令比 DROP 和 DELETE 命令都快。与 DROP 命令一样,使用 this 命令后我们也无法回滚数据。
TRUNCATE 命令的语法 –
下面来看看 SQL 中 DROP 和 TRUNCATE 命令的区别:-
编号 | DROP | TRUNCATE |
---|---|---|
1 | DROP 命令用于删除表定义及其内容。 | TRUNCATE 命令用于从表中删除所有行。 |
2 | 在 DROP 命令中,表空间从内存中释放。 | TRUNCATE 命令不会从内存中释放表空间。 |
3 | DROP 是一个 DDL(数据定义语言)命令。 | TRUNCATE 也是一个 DDL(数据定义语言)命令。 |
4 | 在DROP命令中,表视图不存在。 | TRUNCATE存在表视图。 |
5 | 在 DROP 命令中,完整性约束将被删除。 | TRUNCATE不会删除完整性约束。 |
6 | 在DROP命令中,没有使用undo空间。 | TRUNCATE使用了撤消空间,但小于 DELETE。 |
7 | DROP 命令执行速度快,但会带来复杂性。 | TRUNCATE命令比 DROP 快。 |