sql >> Database >  >> RDS >> Mysql

mysqldump-tabel zonder de primaire sleutel te dumpen

Om dit probleem op te lossen, zocht ik deze vraag op, vond het antwoord van @pumpkinthehead en realiseerde me dat we alleen de primaire sleutel in elke rij hoeven te vinden + vervangen door de NULL, zodat mysql in plaats daarvan de standaard auto_increment-waarde zal gebruiken.

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

Originele uitvoer:

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

Getransformeerde uitvoer:

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

Opmerking:dit is nog steeds een hack; Het zal bijvoorbeeld mislukken als uw kolom voor automatisch verhogen niet de eerste kolom is, maar lost mijn probleem 99% van de tijd op.



  1. Gegevens uit twee tabellen selecteren met een enkele query

  2. Gegevens opvragen uit XML

  3. Java:voeg meerdere rijen in MySQL in met PreparedStatement

  4. Een Linked Server Login toevoegen in SQL Server (T-SQL-voorbeeld)