Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

tabela mysqldump sem despejar a chave primária


Para resolver esse problema, procurei esta pergunta, encontrei a resposta do @pumpkinthehead e percebi que tudo o que precisamos fazer é localizar + substituir a chave primária em cada linha pelo NULL para que o mysql use o valor auto_increment padrão.

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

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

Saída Transformada:
INSERT INTO `core_config_data` VALUES
    (NULL,'default',0,'productupdates/configuration/sender_email_identity','general'),
    (NULL,'default',0,'productupdates/configuration/unsubscribe','1'),

Nota:Este ainda é um hack; Por exemplo, ele falhará se sua coluna de incremento automático não for a primeira coluna, mas resolver meu problema 99% das vezes.