Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

tabel mysqldump tanpa membuang kunci utama

Untuk mengatasi masalah ini, saya mencari pertanyaan ini, menemukan jawaban @pumpkinthehead, dan menyadari bahwa yang perlu kita lakukan hanyalah menemukan+mengganti kunci utama di setiap baris dengan NULL sehingga mysql akan menggunakan nilai auto_increment default sebagai gantinya.

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

Keluaran asli:

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

Hasil Transformasi:

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

Catatan:Ini masih peretasan; Misalnya, ini akan gagal jika kolom kenaikan otomatis Anda bukan kolom pertama, tetapi memecahkan masalah saya 99% dari waktu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rata-rata data untuk setiap 5 menit dalam waktu yang ditentukan

  2. Kapan menggunakan MyISAM dan InnoDB?

  3. Paksa MySQL untuk mengembalikan duplikat dari klausa WHERE IN tanpa menggunakan JOIN/UNION?

  4. Cara Menggabungkan Beberapa Baris Menjadi Satu Kolom di MySQL

  5. Hibernate Named Query - gabungkan 3 tabel