Mysql
 sql >> Base de données >  >> RDS >> Mysql

table mysqldump sans vider la clé primaire

Pour résoudre ce problème, j'ai recherché cette question, trouvé la réponse de @pumpkinthehead et réalisé que tout ce que nous avions à faire était de trouver et de remplacer la clé primaire de chaque ligne par NULL afin que mysql utilise la valeur par défaut auto_increment à la place.

(your complete mysqldump command) | sed -e "s/([0-9]*,/(NULL,/gi" > my_dump_with_no_primary_keys.sql

Sortie d'origine :

INSERT INTO `core_config_data` VALUES
    (2735,'default',0,'productupdates/configuration/sender_email_identity','general'),
    (2736,'default',0,'productupdates/configuration/unsubscribe','1'),

Sortie transformée :

INSERT INTO `core_config_data` VALUES
    (NULL,'default',0,'productupdates/configuration/sender_email_identity','general'),
    (NULL,'default',0,'productupdates/configuration/unsubscribe','1'),

Remarque :Il s'agit toujours d'un hack ; Par exemple, cela échouera si votre colonne d'auto-incrémentation n'est pas la première colonne, mais résout mon problème 99 % du temps.