sql >> Database teknologi >  >> RDS >> Mysql

mysqldump-tabel uden at dumpe den primære nøgle

For at løse dette problem slog jeg dette spørgsmål op, fandt @pumpkintheheads svar og indså, at alt vi skal gøre er at finde+erstat den primære nøgle i hver række med NULL, så mysql vil bruge standardværdien auto_increment i stedet.

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

Originalt output:

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

Transformeret output:

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

Bemærk:Dette er stadig et hack; For eksempel vil det mislykkes, hvis din auto-increment-kolonne ikke er den første kolonne, men løser mit problem 99 % af gangene.



  1. SQL CASE-erklæring

  2. FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek den manual, der svarer til din MySQL-serverversion, for at se den rigtige syntaks at bruge

  3. Sådan finder du navnet på en begrænsning i SQL Server

  4. MySQL matematiske funktioner (fuld liste)