Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysqldump tabela bez zrzucania klucza podstawowego

Aby rozwiązać ten problem, sprawdziłem to pytanie, znalazłem odpowiedź @pumpkinthehead i zdałem sobie sprawę, że wszystko, co musimy zrobić, to znaleźć+zamienić klucz podstawowy w każdym wierszu na NULL, aby mysql zamiast tego używał domyślnej wartości auto_increment.

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

Oryginalne wyjście:

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

Przekształcone wyjście:

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

Uwaga:to wciąż jest hack; Na przykład nie powiedzie się, jeśli Twoja kolumna z automatycznym przyrostem nie jest pierwszą kolumną, ale rozwiąże mój problem w 99% przypadków.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Program C++ komunikujący się z bazą danych MySQL

  2. Ograniczniki w MySQL

  3. Jak zainstalować MySQL 8 z Workbench w systemie Windows 10?

  4. WEEKOFYEAR() Przykłady – MySQL

  5. Różnice między utf8 a latin1