为选定的单元格获取新的自动增量值

时间:2019-05-27 07:49:34

标签: mysql

意外将值导入到设置为自动递增的id列。重复很多,尝试将这些ID重置为表的自动增量值:

update tableccc set id=(SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "mydb"
AND TABLE_NAME = "tableccc") where id<1700

但现在每个ID的值都相同

如何将自动递增的值添加到这些id单元格? enter image description here

1 个答案:

答案 0 :(得分:0)

首先以这种方式将最大ID保存在var中,您将避免重复记录

SET @id=(SELECT MAX(id) FROM tableccc );

然后更新所有ID为146293(重复ID)的记录

UPDATE tableccc SET id=(@id:=@id+1) WHERE id =146293 ;

最终更新“ tableccc”的自动增量

UPDATE information_schema.TABLES
 SET AUTO_INCREMENT = (SELECT MAX(id) FROM tableccc )
 WHERE 
          TABLE_SCHEMA = "mydb"
      AND TABLE_NAME = 'tableccc';