解决Mysql数据库表id字段自增后,删除记录而id字段无法恢复到初始值的问题
2010-11-03 13:10
429 查看
1.首先介绍一下TRUNCATE关键字的意义
TRUNCATE TABLE TableName是一种快速的,无日志记录的,删除表中所有记录的方法。
2.TRUNCATE和DELETE的区别
TRUNCATE TABLE在功能上与不带WHERE子句的DELETE语句相同:二者均删除表中的全部行。但TRUNCATE TABLE比DELETE速度快,且使用的系统和事务日志资源少。
DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用DELETE。如果要删除表定义及其数据,请使用DROP TABLE语句。
对于由FOREIGN KEY约束引用的表,不能使用TRUNCATE TABLE,而应使用不带WHERE子句的DELETE语句。由于TRUNCATE TABLE不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE不能用于参与了索引视图的表。
3.修改id字段的增长初始值
ALTER TBALE TableName AUTO_INCREMENT=1
TRUNCATE TABLE TableName是一种快速的,无日志记录的,删除表中所有记录的方法。
2.TRUNCATE和DELETE的区别
TRUNCATE TABLE在功能上与不带WHERE子句的DELETE语句相同:二者均删除表中的全部行。但TRUNCATE TABLE比DELETE速度快,且使用的系统和事务日志资源少。
DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用DELETE。如果要删除表定义及其数据,请使用DROP TABLE语句。
对于由FOREIGN KEY约束引用的表,不能使用TRUNCATE TABLE,而应使用不带WHERE子句的DELETE语句。由于TRUNCATE TABLE不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE不能用于参与了索引视图的表。
3.修改id字段的增长初始值
ALTER TBALE TableName AUTO_INCREMENT=1
相关文章推荐
- delete语句与reference约束 FK_subplan_job_id冲突问题,导致job无法删除解决办法
- 关于android4.4及以上版本无法恢复还原短信的问题记录与解决
- 关于android4.4及以上版本无法恢复还原短信的问题记录与解决
- 巧妙解决mysql删除或添加记录时,对自增主键ID进行重新排序的问题
- 解决由于设置BatchExecutor批量执行器而导致无法获取自增Id的问题
- CCS+C6678LE开发记录18:解决EVM网口“DHCP配置无法获取IP”的问题
- DataTable实现列位置交换,用于SQL语句无法解决字段页面显示顺序问题
- oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法: 1、查看数据库锁,诊断锁的来源及类型: select object_id
- 关于含有标识字段的数据表中记录的插入问题解决(IDENTITY_INSERT)
- VS2012 opencv 无法删除“继承的值”问题解决方案
- 无法删除Oracle用户,提示存在当前连接问题的解决办法
- Dynamics CRM 依赖组件类型为应用程序功能区导致的无法删除实体问题的解决方法
- mysql delete删除记录数据库空间不减少问题解决方法(优化表)
- Win7系统下发生一个文件夹,无法删除,解决记录
- 安装windows server 2003 datacenter 的 sp2时出现id\syssetup.inf文件找不到无法安装问题的解决方法
- 记录解决UCenter 1.6 DISCUZ 3.1 和 ECmall 2.3 中EC点击退出无法同步其他应用退出的问题
- 解决Win 7桌面图标无法删除的问题
- HBase Shell输入命令无法删除问题解决技巧
- CFileDialog改变文件路径导致的一系列问题(如无法安全删除u盘、访问相对路径失败)的解决方法
- 安装windows server 2003 datacenter 的 sp2时出现id\syssetup.inf文件找不到无法安装问题的解决方法