把备份恢复到新库之后发了三篇测试文章 ID 从 1 开始 直接把原来的首页和关于页覆盖掉 旧文章全变成草稿。乍看像缓存或者权限的锅,追下去往往不是。

SELECT MAX(ID) FROM wp_posts;
SHOW TABLE STATUS LIKE 'wp_posts'\G
ALTER TABLE wp_posts AUTO_INCREMENT = 90001;

追下去是这么回事:导入脚本只灌了数据没带 AUTO_INCREMENT 值 wp_posts 的自增值重新回到 1 新插入的行按主键覆盖同 ID 的旧记录 页面内容直接被打断 草稿也跟着乱。

碰到「自增 ID 未同步」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。

能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

具体做法是,导入完成后先查每张表的 AUTO_INCREMENT 值 跟当前最大 ID 对一遍;用 ALTER TABLE 语句把自增值设成当前最大 ID 再加一 留出余量;导入脚本里带 REPLACE 或 INSERT IGNORE 的语句先整段注释掉再重新跑一遍。

验收就看一点,新发文章 ID 接着旧数据往后排 原有页面的内容一条都没被改写。

作者 9823189