Mysql
 sql >> база данни >  >> RDS >> Mysql

mysqldump таблица без изхвърляне на първичния ключ

За да реша този проблем, потърсих този въпрос, намерих отговора на @pumpkinthehead и разбрах, че всичко, което трябва да направим, е да намерим + заменим първичния ключ във всеки ред с NULL, така че mysql да използва вместо това стойността на auto_increment по подразбиране.

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

Оригинален изход:

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

Трансформиран изход:

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

Забележка:Това все още е хак; Например, ще се провали, ако колоната ви за автоматично увеличение не е първата колона, но решава проблема ми в 99% от времето.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Значение на n:m и 1:n в дизайна на база данни

  2. mySQL изберете IN диапазон

  3. Как да извлечете записи за съвпадение в множество таблици в MySQL

  4. LOAD DATA LOCAL INFILE е забранено в... PHP

  5. Примери за DAYOFYEAR() – MySQL