Tag Archive auto_increment

Byphunsanit

MariaDB: alter auto_increment error 1062

เดิมที่ก็ใช่ phpMyAdmin แก้ column ในตารางให้มี auto_increment ตามปกตินั้นละ แต่ทำกี่ครั้ง ๆ ก็ มี error
1062 – ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ‘2180‘ for key ‘PRIMARY
เข้าไป query ดู ก็เจอว่า id 2180 ไม่ได้ซ้ำ มีแค่ 1 recoed แถม id ในตาราง มันก็วิ่งไปถึง 8,000 แล้ว ยังบอกว่า id 2180 ซ้ำทุกรอบ ทุกวิธีทั้งใช้ ui ทั้งเขียน sql เองก็ทำไม่ได้

  1. หาลำดับ id ใหม่โดยหามาจาก id ที่มากที่สุดแล้ว + 1
    SELECT COALESCE(MAX(ID), 0) + 1 FROM `wp_posts`;
  2. ปิดการใช้งานการจัดลำดับ AUTO_INCREMENT
    SET SESSION sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
  3. เปลี่ยน column โดยคำสั่ง alter ตามปกติ เช่น
    ALTER TABLE `wp_posts` CHANGE `ID` `ID` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;
  4. ระบุลำดับ auto_increment ใหม่จากข้อที่ 1
    ALTER TABLE `wp_posts` AUTO_INCREMENT = 8291;

หลังจากนี้ ก็ใช้ auto_increment ในตารางได้ซักที

อ่านเพิ่มเติม