在mysql中delete和truncated的相同点和区别点

相同点

  1. 删除数据:两者都会删除表中的数据。
  2. 影响数据:两者都不删除表结构,只影响表中的数据。

区别点

操作方式

  1. DELETE:逐行删除数据,可以使用 WHERE 子句来指定删除的条件。如果不加 WHERE 子句,则删除整个表的数据。
  2. TRUNCATE:直接删除整个表的数据,不能使用 WHERE 子句。

性能

  1. DELETE:每次删除一行,会记录每一行的删除操作,速度较慢,适合小规模删
  2. TRUNCATE:删除整个表的数据,不逐行记录删除操作,速度较快,适合大规模删除。

事务处理

  1. DELETE:支持事务,可以回滚。删除操作会记录在日志中,因此可以撤销。
  2. TRUNCATE:不支持事务,不可回滚。操作直接生效,不能撤销。

触发器

  1. DELETE:会触发表上的 DELETE 触发器。
  2. TRUNCATE:不会触发 DELETE 触发器。

自动递增列

  1. DELETE:不会重置 AUTO_INCREMENT 计数器。
  2. TRUNCATE:会重置 AUTO_INCREMENT 计数器。

外键约束

  1. DELETE:当涉及外键约束时,必须遵循外键约束规则。
  2. TRUNCATE:不能在引用的表(即有外键约束的表)上执行。

使用场景

  1. DELETE:当你需要删除部分数据或希望操作可以回滚时,使用 DELETE。
  2. TRUNCATE:当你需要快速清空表并且不需要保留任何删除记录时,使用 TRUNCATE。

相关推荐

  1. MySQL】SQLDROP、DELETETRUNCATE区别

    2024-07-11 05:50:04       35 阅读
  2. MySQLdrop、truncatedelete区别

    2024-07-11 05:50:04       33 阅读
  3. DELETETRUNCATE DROP MySQL区别及使用示例

    2024-07-11 05:50:04       35 阅读
  4. OracleTRUNCATE TABLE DELETE区别

    2024-07-11 05:50:04       24 阅读
  5. MySQL数据库Delete语句Truncate table 语句区别

    2024-07-11 05:50:04       27 阅读
  6. drop、truncatedelete区别及效率

    2024-07-11 05:50:04       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 05:50:04       50 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 05:50:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 05:50:04       43 阅读
  4. Python语言-面向对象

    2024-07-11 05:50:04       54 阅读

热门阅读

  1. 解锁SQL Server的迷宫:深入死锁的诊断与解决之道

    2024-07-11 05:50:04       20 阅读
  2. vite搭建vue2项目

    2024-07-11 05:50:04       19 阅读
  3. 基于STM32设计的智能手环(ESP8266+华为云IOT)178

    2024-07-11 05:50:04       21 阅读
  4. 代码优化(2)——小程序登录

    2024-07-11 05:50:04       22 阅读
  5. LeetCode 981, 219, 78

    2024-07-11 05:50:04       23 阅读
  6. linux中的僵尸进程

    2024-07-11 05:50:04       16 阅读
  7. 保持边界感

    2024-07-11 05:50:04       21 阅读