|
我又来科普知识了(为什么说又呢?如果这是第一次看到我,那说明平时我的存在感实在太低。。。)
在说什么?
在执行
INSERT INTO home_notification SET `uid`='38722' , `type`='task' , `new`='1' , `authorid`='38722' , `author`='survivalacr' , `note`='恭喜您完成任务:<a href=\"home.php?mod=task&do=view&id=8\" target=\"_blank\">完善用户资料</a>,获得积分 H币 10 贝利 <a href=\"home.php?mod=spacecp&ac=credit&op=base\" target=\"_blank\" class=\"lit\">查看我的积分 ›</a></p>' , `dateline`='1423596861' , `from_id`='' , `from_idtype`='' , `from_num`='1'
时,作为“身份”存在的primary key(类似狗牌上的号吧,其实我对狗牌比较不熟)里出现重复,导致这行命令无法完成。
我看到了什么?
'16777215' 不在执行的insert query里 => 非手动推送数据 => primary key 或 primary key set 里的某一entry是自动增值的。
为什么呢?
16777215 = FFFFFF 16进制(竟然用24位数据结构。。。在怎么也用个4的次方数呢) 就是前面提到auto increment的极限
当到达极限时,每往数据库里新增条时(0x1000000),mysql(我只玩过mysql...别喷我)会自动将数值设为可接受的最大值,which已经存在于数据库里了。
肿么办啊?
凉拌。。。
修改primary key属性会影响所有关联列表,简单来说基本上就是要重新构建数据库了。。。
我没怎么玩过数据库,不知道有没有专门的工具能直接倒出已有数据库table,再倒入到新的table
最笨的办法就写个java file或者随便什么能调用数据库的读出所有值,重新构建完数据库系统后用java再写入倒出的数据(很慢就是了)
综上所述,大家也不用再在这里发帖反映了。在座的论坛班主,管理员只有数据库使用权限,,坐等数据库管理员弄这个吧
PS:我手贱刷了大概200 后来想看error code又从本地记录调出了那个网页,导致间接刷了钱,大大们手下留情阿,我以前可都是认真吐槽才有今天成果的,真的(点头)。
补充内容 (2015-2-11 04:54):
编辑功能都没有。。。感觉好澜。。。
补充内容 (2015-2-11 04:54):
尝试用补充加一个艾娘{:8_230:}
补充内容 (2015-2-11 04:55):
失败了。。。
补充内容 (2015-2-11 04:58):
我竟然是个这么用心的用户。引以为傲了
补充内容 (2015-2-11 05:02):
会不会被评上荣誉用户呢,哦嘿嘿嘿~~
补充内容 (2015-2-11 05:09):
我回去看了一眼,刷了300整。。。别杀我呀,我很好一人 |
|