zoukankan      html  css  js  c++  java
  • 插入数据显示 Duplicate entry '4913' for key 'user_id'

    1:提示信息翻译:插入 xxx 使索引1重复
    分析:索引如果是primary unique这两两种,那么数据表的数据对应的这个字段就必须保证其每条记录的唯一性。否则就会产生这个错误。
    一般发生在对数据库写操作的时候,例如Discuz!4.1论坛程序要求所有会员的用户名username必须唯一,即username 的索引是unique,这时如果强行往cdb_members表
    里插入一个已有的username的记录就会发上这个错误,或者将一条记录的username更新为已有的一个username。
    改变表结构的时候也有可能导致这个错误。例如 Discuz!4.0论坛的数据库中cdb_members.username 的索引类型是 index 这个时候是允许有相同username的记录存在
    的,在升级到4.1的时候,因为要将username的索引由原来的index变为unique。如果这时cdb_members里存在有相同的username的记录,那么就会引发这个错误。
    导出数据据时有时会因为一些原因(作者目前还不清楚)导致同一条记录被重复导出,那么这个备份数据在导入的时候出现这个错误是在所难免的了。
    修改了auto_increment的值,致使“下一个 Autoindex”为一条已经存在的记录

    2:可能是你的数据表中像 ID 这样的自增字段AUTO_INCREMENT出现了问题,使用AUTO_INCREMENT时,应注意以下几点:
    AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列。
    设置AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍。
    AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复。
    AUTO_INCREMENT数据列必须具备NOT NULL属性。
    AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。一旦达到上限,AUTO_INCREMENT就会
    失效。
    3:根据以上信息你没有解决的话,请继续操作:
    有可能是因为数据表文件损害导致,可用MySQL的修复工具myisamchk 工具修复。
    在CMD下面输入:
    myisamchk cdb_posts.myi -r
    修复数据表就OK了!

  • 相关阅读:
    实战-百度云[大文件/文件夹]下载限制破解
    IOCP之客户端及消息传递
    IOCP简单实现
    Charles V4系列更新 | 绿色特别版 | 视频教程
    Charles 3.11.5 绿色特别版
    VC运行库合集2005/2008/2010/2012/2013/2015
    手游测试之《弱网测试》
    后端性能测试不可不知的二三事
    linux性能指标及分析工具
    Shell笔记-04
  • 原文地址:https://www.cnblogs.com/jiechn/p/4180658.html
Copyright © 2011-2022 走看看