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

MySQL LOAD DATA INFILE dengan ON DUPLICATE KEY UPDATE

Langkah-langkah ini dapat digunakan untuk meniru fungsi ini:

  1. Buat tabel sementara baru.

    CREATE TEMPORARY TABLE temporary_table LIKE target_table;
    
  2. Secara opsional, hapus semua indeks dari tabel sementara untuk mempercepat.

    SHOW INDEX FROM temporary_table;
    DROP INDEX `PRIMARY` ON temporary_table;
    DROP INDEX `some_other_index` ON temporary_table;
    
  3. Muat CSV ke tabel sementara

    LOAD DATA INFILE 'your_file.csv'
    INTO TABLE temporary_table
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    (field1, field2);
    
  4. Salin data menggunakan ON DUPLICATE KEY UPDATE

    SHOW COLUMNS FROM target_table;
    INSERT INTO target_table
    SELECT * FROM temporary_table
    ON DUPLICATE KEY UPDATE field1 = VALUES(field1), field2 = VALUES(field2);
    
  5. Hapus tabel sementara

    DROP TEMPORARY TABLE temporary_table;
    

Menggunakan SHOW INDEX FROM dan SHOW COLUMNS FROM proses ini dapat diotomatisasi untuk tabel apa pun.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa itu MySQL Workbench?

  2. Jumlahkan nilai array multidimensi dengan kunci tanpa loop

  3. Cara Menambahkan Opsi ke sql_mode di MySQL Tanpa Kehilangan Pengaturan yang Ada

  4. Memantau Server Percona untuk MySQL - Metrik Utama

  5. Bagaimana Anda menetapkan nilai default untuk kolom MySQL Datetime?