[分享]MySql AUTO_INCREMENT 重新设置自增值的方法_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2248 | 回复: 0   主题: [分享]MySql AUTO_INCREMENT 重新设置自增值的方法        下一篇 
薯片
注册用户
等级:中士
经验:237
发帖:75
精华:0
注册:2012-2-10
状态:离线
发送短消息息给薯片 加好友    发送短消息息给薯片 发消息
发表于: IP:您无权察看 2014-11-28 15:32:34 | [全部帖] [楼主帖] 楼主

一般来说,自增值主要是数据表主键或者具有唯一性的字段,在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。这里分享MySql AUTO_INCREMENT 重新设置自增值的方法,欢迎多多交流。
可在建表时使用“AUTO_INCREMENT=n”来指定一个自增的初始值,比如:

CREATE TABLE test
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(15) NOT NULL
)AUTO_INCREMENT = 100;


此例建立一个TEST表,主键ID设置为自增,初始值为 100。
当我们需要修改自增起始值时,可用 alter table table_name AUTO_INCREMENT=n 命令来重设。
比如表 test 的ID最大值为150,但是因为某种原因导致自增值已经到了250,所以需要重设为151以便于下次ID从151开始往上增,语法如下:

说明:
  (1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。
  (2)把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。
  (3)当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。
  (4)当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;情况二,如果插入的值大于已编号的值,则会把该值插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。
  (5)如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论