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

MySQL LOAD DATA INFILE z ON DUPLICATE KEY UPDATE

Poniższe kroki można wykorzystać do emulacji tej funkcji:

  1. Utwórz nową tabelę tymczasową.

    CREATE TEMPORARY TABLE temporary_table LIKE target_table;
    
  2. Opcjonalnie usuń wszystkie indeksy z tabeli tymczasowej, aby przyspieszyć działanie.

    SHOW INDEX FROM temporary_table;
    DROP INDEX `PRIMARY` ON temporary_table;
    DROP INDEX `some_other_index` ON temporary_table;
    
  3. Załaduj plik CSV do tabeli tymczasowej

    LOAD DATA INFILE 'your_file.csv'
    INTO TABLE temporary_table
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    (field1, field2);
    
  4. Skopiuj dane za pomocą AKTUALIZACJI ZDUPLIKOWANEGO KLUCZY

    SHOW COLUMNS FROM target_table;
    INSERT INTO target_table
    SELECT * FROM temporary_table
    ON DUPLICATE KEY UPDATE field1 = VALUES(field1), field2 = VALUES(field2);
    
  5. Usuń tabelę tymczasową

    DROP TEMPORARY TABLE temporary_table;
    

Używanie SHOW INDEX FROM i SHOW COLUMNS FROM proces ten można zautomatyzować dla dowolnej tabeli.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepsze rozwiązanie DBaaS dla MySQL

  2. Jak uzyskać dane z ostatniej godziny w MySQL?

  3. MONTHNAME() Przykłady – MySQL

  4. Jak znaleźć n-ty wiersz w MySQL

  5. Najłatwiejszy sposób na link weryfikacyjny e-mail PHP