怎么重置mysql的自增列AUTO_INCREMENT初时值
重置 MySQL 自增列 AUTO_INCREMENT 初时值
注意, 使用以下任意方法都会将现有数据删除.
方法一:
delete from tb1;
ALTER TABLE tbl AUTO_INCREMENT = 100;
(好处, 可以设置 AUTO_INCREMENT 为任意值开始)
提示:如果表列和数据很多, 速度会很慢, 如90多万条, 会在10分钟以上.
方法二:
truncate tb1;
(好处, 简单, AUTO_INCREMENT 值重新开始计数.)
怎么重置mysql的自增列
1. 支持设置自增列的值
ALTER TABLE table_name AUTO_INCREMENT = 1;
不过这种方式自能设置大于当前使用的值,不能设置小于等于当前已经使用的自增列的值。myisam如果设置小于等于,则自增列的值会自动设置为
当前最大值加1。innodb则不会改变。
2.通过TRUNCATE把自增列设置为0,从MySQL 5.0.13开始TRUNCATE就能重置自增列为0.myisam和innode都是如此。
TRUNCATE TABLE table_name;
3.drop和create重建表方式重置自增列为0
DROP TABLE table_name;
CREATE TABLE table_name { ... };
相关推荐
-
重置MySQL中表中自增列的初始值的实现方法
重置MySQL中表中自增列的初始值的实现方法 1. 问题的提出 在MySQL的数据库设计中,一般都会设计自增的数字列,用作业务无关的主键. 在数据库出现频繁的删除操作或者清空操作之后,其自增的值仍然会自动增长,如果需要重新开始该如何做呢? 2. 解决办法 a. alter table delete from table_name; ALTER TABLE table_name AUTO_INCREMENT = 1; 如果数据库表中的数据很多,则删除操作会持续比较久,这个问题需要注意. b.
-
怎么重置mysql的自增列AUTO_INCREMENT初时值
重置 MySQL 自增列 AUTO_INCREMENT 初时值 注意, 使用以下任意方法都会将现有数据删除. 方法一: delete from tb1; ALTER TABLE tbl AUTO_INCREMENT = 100; (好处, 可以设置 AUTO_INCREMENT 为任意值开始) 提示:如果表列和数据很多, 速度会很慢, 如90多万条, 会在10分钟以上. 方法二: truncate tb1; (好处, 简单, AUTO_INCREMENT 值重新开始计数.) 怎么重置mysql的
-
MySQL自增列插入0值的解决方案
在将数据库从MSSQL迁移到MySQL的过程中,基于业务逻辑的要求,需要在MySQL的自增列插入0值.在MSSQL中是这样完成的: 复制代码 代码如下: string sql;sql = " set identity_insert dbo.AppUsers on " + " insert dbo.AppUsers (Id, IsLocked, IsMustChangeLocalPassword, IsAvailable, Name, Sequence, CreatedBy,
-
深入探寻mysql自增列导致主键重复问题的原因
废话少说,进入正题. 拿到问题后,首先查看现场,发现问题表的中记录的最大值比自增列的值要大,那么很明显,当有记录进行插入时,自增列产生的值就有可能与已有的记录主键冲突,导致出错.首先想办法解决问题,通过人工调大自增列的值,保证大于表内已有的主键即可,调整后,导数据正常.问题是解决了,接下来要搞清楚问题原因,什么操作导致了这种现象的发生呢? 这里有一种可能,即业务逻辑包含更新自增主键的代码,由于mysql的update动作不会同时更新自增列值,若更新主键值比自增列大,也会导致上述现象:记录最大值比
-
SqlServer Mysql数据库修改自增列的值及相应问题的解决方案
SQL Server 平台修改自增列值 由于之前处理过sql server数据库的迁移工作,尝试过其自增列值的变更,但是通过SQL 语句修改自增列值,是严格不允许的,直接报错(无法更新标识列 '自增列名称').sql server我测试是2008.2012和2014,都不允许变更自增列值,我相信SQL Server 2005+的环境均不允许变更字段列值. 如果非要在SQL Server 平台修改自增列值的,那就手动需要自增列属性,然后修改该列值,修改成功后再手动添加自增列属性.如果在生成环境修改
-
MySQL如何让一个表中可以有多个自增列
目录 1.手动指定自增值 2.手动修改自增值 3.一个表可以有多个自增列吗? 4.其他注意事项 4.1 自增列只能为整数类型 4.2 必须配合 key 一起使用 总结 前言: 自增列可使用 auto_increment 来实现,当一个列被标识为 auto_increment 之后,在添加时如果不给此列设置任何值,或给此列设置 NULL 值时,那么它会使用自增的规则来填充此列. PS:本文以下内容基于 MySQL InnoDB 数据库引擎. 默认情况下自增列的值为 1,每次递增 1,比如以下建表
-
mysql中自增auto_increment功能的相关设置及问题
mysql中的自增auto_increment功能相信每位phper都用过,也都知道如何设置字段为自增字段,但并不是所有phper都知道auto_increment的起始值和递增量是如何设置的!本文就为大家分享一下mysql字段自增功能的具体查看及设置方法. 涉及知识介绍: mysql服务器维护着2种mysql的系统参数(系统变量):全局变量(global variables)和会话变量(session variables).它们的含义与区别如其各占的名称所示,session variables
-
MySQL slave 延迟一列 外键检查和自增加锁
目录 MySQL slave 延迟 外键检查和自增加锁 一.现象 二.pscak 采样 三.自增锁获取逻辑 四.方案 MySQL slave 延迟 外键检查和自增加锁 一.现象 延迟大,大事物. 表结构 无IO SQL THREAD占用CPU 100% 二.pscak 采样 采样30个点 外键检查 占70% 自增锁获取 占30% 三.自增锁获取逻辑 逻辑如下其实也是innodb_autoinc_lock_mode参数的作用 switch (lock_mode) { case AUTOINC_NO
-
线上MySQL的自增id用尽怎么办
目录 表定义自增值id InnoDB系统自增row_id Xid Innodb trx_id InnoDB数据可见性的核心思想 thread_id 总结 MySQL的自增id都定义了初始值,然后不断加步长.虽然自然数没有上限,但定义了表示这个数的字节长度,计算机存储就有上限.比如,无符号整型(unsigned int)是4个字节,上限就是2^32 - 1.那自增id用完,会怎么样? 表定义自增值id 表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不变. mysql> crea
-
Mysql数据库自增id、uuid与雪花id详解
目录 概念介绍 三种主键 聚簇索引与非聚簇索引 自增id uuid 雪花id与应用 总结 概念介绍 三种主键 自增id :1 2 3 4 5…… uuid :UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符.通用唯一标识符的意思,可以以业务实际user id为主键 比如QQ号 手机号等 雪花id :相比UUID无序生成的id而言,雪花算法是有序的(有时间参数),而且都是由数字组成.雪花id最大为64位,
随机推荐
- angularjs2 ng2 密码隐藏显示的实例代码
- JavaScript实现同一个页面打开多张图片
- 部署Python的框架下的web app的详细教程
- Android中Intent传递对象的两种方法Serializable,Parcelable
- mysql having用法解析
- Mysql错误1366 - Incorrect integer value解决方法
- javascript 改变字体大小方法集合 原创
- nc.exe高级技巧应用汇总
- 用来检测输入的选项$1是否在PATH中的shell脚本
- SQLSERVER2005 中树形数据的递归查询
- MSSQL 2008 自动备份数据库的设置方法
- jquery图片放大镜功能的实例代码
- Javascript的严格模式strict mode详细介绍
- C++文件依存关系介绍
- 使用Cacls命令设置服务器文件访问权限
- 解析linq to xml操作XML的示例分析
- 完美利用Yii2微信后台开发的系列总结
- c++中八大排序算法
- Android提高之ListView实现自适应表格的方法
- Swift中defer的正确使用方法