sql >> Databasteknik >  >> RDS >> Mysql

mysqldump-tabell utan att dumpa primärnyckeln

För att lösa detta problem letade jag upp den här frågan, hittade @pumpkintheheads svar och insåg att allt vi behöver göra är att hitta+ersätta primärnyckeln i varje rad med NULL så att mysql kommer att använda standardvärdet auto_increment istället.

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

Originalutdata:

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

Transformerad utdata:

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

Obs:Detta är fortfarande ett hack; Det kommer till exempel att misslyckas om din kolumn för automatisk ökning inte är den första kolumnen, men löser mitt problem 99 % av gångerna.



  1. Hur Unicode() fungerar i SQLite

  2. SQL CASE:Känn till och undvik 3 mindre kända problem

  3. Analysera parameterns standardvärden med PowerShell – Del 2

  4. Hur fyller man i databasen bara en gång före @Test-metoder i vårtestet?