Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysqldump-Tabelle, ohne den Primärschlüssel auszugeben

Um dieses Problem zu lösen, habe ich diese Frage nachgeschlagen, die Antwort von @pumpkinthehead gefunden und festgestellt, dass wir nur den Primärschlüssel in jeder Zeile mit NULL suchen und ersetzen müssen, damit mysql stattdessen den Standardwert auto_increment verwendet.

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

Ursprüngliche Ausgabe:

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

Transformierte Ausgabe:

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

Hinweis:Dies ist immer noch ein Hack; Zum Beispiel schlägt es fehl, wenn Ihre Auto-Increment-Spalte nicht die erste Spalte ist, löst aber mein Problem in 99 % der Fälle.