delete 和 truncate 的区别

  • 相同点:
    • ​ 都能删除数据,不会影响表结构和索引约束
  • 不同点
    • DELETE

      • delete 删除表中的数据,表结构还在;
      • 一条一条删除数据
      • 删除后的数据可以找回
      • 不会影响自增
      • 不清空表数据的情况下删除数据,一般使用delete
    • TRUNCATE

      • truncate 删除是把表直接DROP掉,然后再创建一个同样的新表。
      • 直接删除整个表,执行速度比delete快
      • 删除的数据不能找回。
      • 影响自增,自增归零
      • 不会影响事务
      • 清空表中所有数据,一般使用 truncate