重新整理AUTO_INCREMENT字段
3 月,跳不动了?>>> 重新整理AUTO_INCREMENT字段 2016-01-21 Netkiller Netkiller 节选择《Netkiller MySQL 手札》 13.9. 重新整理AUTO_INCREMENT字段 AUTO_INCREMENT 并非按照我们意愿,顺序排列,经常会跳过一些数字,例如当插入失败的时候,再次插入会使用新的值。有时会造成浪费,我们可以使用下面SQL重新编排AUTO_INCREMENT序列。 SET @newid=0; UPDATE mytable SET id = (SELECT @newid:=@newid+ 1); 使用max()查看最大值,然后使用 alter修改起始位置。 select max(id) from mytable; ALTER TABLE mytable AUTO_INCREMENT = 1000; 注意外键,需要 ON UPDATE CASCADE 支持,否则无法更新。CONSTRAINT `FK_group_has_contact_contact` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`) ON UPDATE CASCADE ON DELETE CASCADE, CREATE TABLE `contact` ( `id` INT(10)