• id 自增------删除数据后恢复到删除前自增id


    删除数据后,执行下面语句: 

        ALTER TBALE TableName AUTO_INCREMENT=1

    mysql删除比较

    一、DROP

      drop  table tablename

        绝招:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表

    二、TRUNCATE

      truncate table tablename

        绝招:删除内容、释放空间但不删除定义(表定义和结构)。与drop不同的是,他只是清空表数据而已.执行语句之后,发现数据表的结构还在,也就是不删除定义.

    三、DELETE

        delete from tbname 清空表

        delete form tablename where 删除某条记录

        绝招: --虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低)

    至于释放空间,看下下面两幅图.你们就会明白的

    上图:Id列标识列,因之前delete过行数据,所以会出现标识列不连续(体现了delete删除是不释放空间的)

      经过truncate table Teacher 之后 再新增三条数据

    上图:同样Id是标识列,发现插入数据的时候,标识列连续了(体现了truncate删除是释放空间)

    注意:truncate 不能删除行数据,要删就要把表清空

    比较:

      truncate 和 delete 都可以清空表但是,truncate 比 delete速度快,且使用的系统和事务日志资源少。

      TRUNCATE TABLE TableName是一种快速的,无日志记录的,删除表中所有记录的方法。

      delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行roll back

      当使用truncate  表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

        truncate 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而 truncate 则不会被撤销。

     

  • 相关阅读:
    Kivy Minimum required opengl version (2.0) not found
    Rust 在Jebrains 家族工具里报 No Cargo projects found!
    Rust Cargo 下载慢的解决办法
    Python面试题库学习1-5
    Kivy Pyinstaller打包报: No module named pkg_resources.py2_warn
    Kettle 部署和远程调用(spoon 8.3)
    spring boot 发布的jar 二 发布到 windows
    spring boot 发布的jar 一 发布到 linux centos7
    springBoot项目打jar包后,修改配置文件中的配置项
    mysql sqldump 备份
  • 原文地址:https://www.cnblogs.com/jiechn/p/4016365.html
Copyright © 2020-2023  润新知