码迷,mamicode.com
首页 > 其他好文 > 详细

开发人员改主键自增列起始值多了个0 !!!

时间:2017-07-24 22:26:33      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:最新   user   写入   table   操作   alter   保留   修改   inf   

2017-07-23 晚21:21接到开发打来的电话说mysql自增列改大后还能修改吗?
原由:因领导说要保留id 99999和 98888这样的id号 自己用,然后开发就自己改了user_login_account表自增列起始值,开发本想改成100002,然而他多加了一个0,搞成了1000002,这就有点杯具了,
于是开发想试图搞这个值改小成100002,结果改不回来了,他就找到我处理。本想
 
1 首先和开发沟通后确定影响到了2张表,一个表是user_login_account的自增id列,另一张表是user_info的account_id和user_code列 (非自增)
然后要查出来新数据写入了多少 条和是从哪条开始是100W自增。
1.查看user_login_account表最新数据数据写入id列为
1000412
2.id断点位置如下
| 1000004 |
| 1000003 |
| 1000002 |
| 98435 |
| 98434 |
 
1.查看user_info表最新数据数据写入account_id和user_code列为
1000412 1000412
2 account_id和user_code断点位置
| 1000006 | 1000006 |
| 1000005 | 1000005 |
| 1000004 | 1000004 |
| 1000003 | 1000003 |
| 1000002 | 1000002 |
| 98435 | 98435 |
| 98434 | 98434 |
 
解决:
改user_login_account新数据自增列,并把自增起始值改成100413,这次操作没有关业务当时看到凌晨没啥 数据写入,就直接 改了。
#!/bin/bash
 
for i in {1000002..1000412}
do
#ii=`echo ${i/00/}`
ii=$((i-900000))
mysql -udb -pabc -e "use db;update user_login_account set id=‘$ii‘ where id=‘$i‘"
done
 
ALTER TABLE user_login_account auto_increment=100413;
 
改user_info表新数据account_id列
#!/bin/bash
 
for i in {1000002..1000412}
do
ii=$((i-900000))
mysql -udb -pabc -e "use db;update user_info set account_id=‘$ii‘ where account_id=‘$i‘"
done
 
改user_info表新数据user_code列
#!/bin/bash
 
for i in {1000002..1000412}
do
ii=$((i-900000))
mysql -udb -pabc -e "use db;update user_info set user_code=‘$ii‘ where user_code=‘$i‘"
done
 
欢迎大家给出意见,大家交流,共同进步。

开发人员改主键自增列起始值多了个0 !!!

标签:最新   user   写入   table   操作   alter   保留   修改   inf   

原文地址:http://www.cnblogs.com/hmysql/p/7231207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!