啥也没写
分类: LINUX
2010-08-26 12:45:23
Discuz! info: MySQL Query Error
User: 笨鸟先飞
Time: 2009-10-17 8:04am
Script: /misc.phpSQL: INSERT INTO [Table]attachpaymentlog (uid, aid, authorid, dateline, amount, netamount)
VALUES ('5', '16799017', '57', '1255737856', '1', '1')
Error: Duplicate entry '16777215-5' for key 1
Errno.: 1062
Mysql出现1062错误的原因是向唯一字段插入了相同数据。这个问题如何解决呢?
如果您的站点上有 phpMyAdmin ,还可以通过它他检查下您的数据库中出错的表的自增字段的当前自增值是否和该表中自增字段的最大值相同,如果相同则会出现该错误。
如何检查?
1)进入您的 phpMyAdmin ,然后在左侧选择您出错的数据库。
2)选择您出错的表,并找到该表的自增字段,有 auto_increment 标识的字段即为该表的自增字段。
3)点击浏览,然后根据自增字段降序排序,记下自增字段的当前最大值。
4)点击该页面上方的操作,会看到“表选项”中的 auto_increment 项,这就是下一条你要插入的数据的自增字段的值,如果这个值和刚才记下的当前自增字段的最大值一样,就会报错了,所以将这个值改为大于刚才记下的当前自增字段的最大值,然后点击“执行”,即可解决问题。
示例中给出的当前自增字段的最大值为 54 ,而下一条你要插入的数据的自增字段的值为 55 ,这样则不会有问题。
还有一种情况,那就是自增字段的数值已经达到该字段的最大值,即不能再增加了,这种情况也会出现同样的错误提示。上面提到我朋友论坛的错误信息正是此原因。自增字段的数据类型是mediumint(8),因为数据出了问题,导致该字段值超出了最大范围16777215!把出错的数据修正即可解决。
chinaunix网友2010-08-29 15:58:03
Download More than 1000 free IT eBooks: http://free-ebooks.appspot.com