suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php - Fehler 1062:Doppelter Eintrag „4294967295“ für Schlüssel „PRIMARY“

Die Daten in meiner Datenbank haben nur Hunderttausende Einträge. Dann könnte ich ihn vorher einfügen, aber jetzt bekomme ich diesen Fehler
Bitte antworten

漂亮男人漂亮男人2776 Tage vor1128

Antworte allen(3)Ich werde antworten

  • ringa_lee

    ringa_lee2017-06-17 09:17:21

    首先说讲清楚几个概念

    1. int(11) 和int(3) 存储的值的最终大小是一样的,这个3和11 是在终端显示的时候数字长度,和存储数字大小和长度无关

    2. 11万的数据,你的主键应该不是步长加1,或者你id也可能不是自增0开始的。

    3. 还有楼上的已经说清楚原因,说是主键的值重复,那就先去数据库找找这条记录,然后再看看 10多万的数据,怎么主键到了4294967295

    4. 2的32次方=4294967296(无符号),带符号再除以2,负数比正数多一个,-2147483648~+2147483647 int型无符号 4294967296 最大值

    Antwort
    0
  • 世界只因有你

    世界只因有你2017-06-17 09:17:21

    这说是键重复了,试试这个,不保证有用····
    step 1: select max(your primary_key_field) from your_table_name;
    step 2: ALTER TABLE your_table_name AUTO_INCREMENT = value_u_got_from_step1 + 1;

    Antwort
    0
  • PHP中文网

    PHP中文网2017-06-17 09:17:21

    id自增已达上限,再插入数据也只能插入这个id值,所以才会冲突,改成bigint类型即可,十几万数据就自增到这个值,你要检查一下你的自增规则和业务逻辑,否则按你的速度很快还会到上限

    Antwort
    0
  • StornierenAntwort