gpt4 book ai didi

sql - TRUNCATE 和 DELETE 的区别?

转载 作者:行者123 更新时间:2023-12-04 16:34:11 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What's the difference between TRUNCATE and DELETE in SQL

(32 个回答)


7年前关闭。



TRUNCATEDELETE命令执行相同的工作,在这两种情况下都操作数据,那么为什么 DELETE命令属于 DML 命令和 TRUNCATE命令属于 DDL 命令?

最佳答案

删除

  • DELETE 是一个 DML 命令。
  • DELETE 语句使用行锁执行,表中的每一行都被锁定以进行删除。
  • 我们可以在 where 子句
  • 中指定过滤器
  • 如果 where 条件存在,它会删除指定的数据。
  • 删除会激活触发器,因为操作是单独记录的。
  • 比截断慢,因为它保留日志。
  • 回滚是可能的。

  • 截短
  • TRUNCATE 是一个 DDL 命令。
  • TRUNCATE TABLE 总是锁定表和页,但不是每一行。
  • 不能使用 Where 条件。
  • 它删除所有数据。
  • TRUNCATE TABLE 无法激活触发器,因为该操作不记录单个行删除。
  • 在性能方面更快,因为它不保留任何日志。
  • 回滚是不可能的。
  • 关于sql - TRUNCATE 和 DELETE 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25300810/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com