zoukankan      html  css  js  c++  java
  • 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 则不会被撤销。

     

  • 相关阅读:
    SQL Server 2008数据库镜像+故障转移集群原理摘自网络
    AHCI和IDE区别,和在目前系统中设置 AHCI 摘自网络
    中国计算机技术职业资格网(软考 官方 官网)
    第十一节 导出Excel 简单
    第五章 IF语句与逻辑运算符 简单
    第十一节 10图片权限控制 简单
    第四章 C++数据类型 简单
    第二章 从一个最简短的C++程 简单
    php 解析xml文件 简单
    第十一节 6HttpHandler案例 简单
  • 原文地址:https://www.cnblogs.com/jiechn/p/4016365.html
Copyright © 2011-2022 走看看