为了解决这个问题,我查找了这个问题,找到了@pumpkinthehead 的答案,并意识到我们需要做的就是用 NULL 查找+替换每一行中的主键,以便 mysql 将使用默认的 auto_increment 值。
(your complete mysqldump command) | sed -e "s/([0-9]*,/(NULL,/gi" > my_dump_with_no_primary_keys.sql
原始输出:
INSERT INTO `core_config_data` VALUES
(2735,'default',0,'productupdates/configuration/sender_email_identity','general'),
(2736,'default',0,'productupdates/configuration/unsubscribe','1'),
转换输出:
INSERT INTO `core_config_data` VALUES
(NULL,'default',0,'productupdates/configuration/sender_email_identity','general'),
(NULL,'default',0,'productupdates/configuration/unsubscribe','1'),
注意:这仍然是一个 hack;例如,如果您的自动增量列不是第一列,但 99% 的时间都解决了我的问题,它将失败。