sql >> Databasteknik >  >> RDS >> Mysql

MySQL LADDA DATAINFIL med PÅ DUBLIKATNYCKELUPPDATERING

Dessa steg kan användas för att emulera den här funktionen:

  1. Skapa en ny tillfällig tabell.

    CREATE TEMPORARY TABLE temporary_table LIKE target_table;
    
  2. Om du vill kan du släppa alla index från den tillfälliga tabellen för att snabba upp det.

    SHOW INDEX FROM temporary_table;
    DROP INDEX `PRIMARY` ON temporary_table;
    DROP INDEX `some_other_index` ON temporary_table;
    
  3. Ladda CSV-filen i den tillfälliga tabellen

    LOAD DATA INFILE 'your_file.csv'
    INTO TABLE temporary_table
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    (field1, field2);
    
  4. Kopiera data med ON DUBLIKAT UPPDATERING AV NYCKEL

    SHOW COLUMNS FROM target_table;
    INSERT INTO target_table
    SELECT * FROM temporary_table
    ON DUPLICATE KEY UPDATE field1 = VALUES(field1), field2 = VALUES(field2);
    
  5. Ta bort den tillfälliga tabellen

    DROP TEMPORARY TABLE temporary_table;
    

Använder SHOW INDEX FROM och SHOW COLUMNS FROM denna process kan automatiseras för en given tabell.



  1. Kan inte ansluta till postgres från fjärrvärden

  2. Har Oracle ett filtrerat indexkoncept?

  3. Alibaba moln

  4. Ställa in sessionens tidszon med spring jdbc oracle