Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL ЗАРЕЖДАНЕ НА ДАННИ INFILE с ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИРАН КЛЮЧ

Тези стъпки могат да се използват за емулиране на тази функционалност:

  1. Създайте нова временна таблица.

    CREATE TEMPORARY TABLE temporary_table LIKE target_table;
    
  2. По желание махнете всички индекси от временната таблица, за да ускорите нещата.

    SHOW INDEX FROM temporary_table;
    DROP INDEX `PRIMARY` ON temporary_table;
    DROP INDEX `some_other_index` ON temporary_table;
    
  3. Заредете CSV файла във временната таблица

    LOAD DATA INFILE 'your_file.csv'
    INTO TABLE temporary_table
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    (field1, field2);
    
  4. Копирайте данните, като използвате 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. Премахнете временната таблица

    DROP TEMPORARY TABLE temporary_table;
    

Използване на SHOW INDEX FROM и SHOW COLUMNS FROM този процес може да бъде автоматизиран за всяка дадена таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да нулирате паролата за root на MySQL

  2. Как да защитим MySQL бази данни от Ransomware кампании

  3. Вмъкнете няколко реда с подготвени изрази за PDO

  4. Защо не трябва да използвам mysql_* функции в PHP?

  5. Ръководство за проектиране на база данни за известия в MySQL