Saltar al contenido

MySQL LOAD DATA INFILE con ACTUALIZACIÓN DE CLAVE DUPLICADA

Queremos mostrarte la mejor información que hemos encontrado por todo internet. Deseamos que te sea útil y si deseas comentarnos algún detalle que nos pueda ayudar a mejorar hazlo con libertad.

Solución:

Estos pasos se pueden utilizar para emular esta funcionalidad:

1) Crear una nueva tabla temporal.

CREATE TEMPORARY TABLE temporary_table LIKE target_table;

2) Opcionalmente, elimine todos los índices de la tabla temporal para acelerar las cosas.

SHOW INDEX FROM temporary_table;
DROP INDEX `PRIMARY` ON temporary_table;
DROP INDEX `some_other_index` ON temporary_table;

3) Cargue el CSV en la tabla temporal

LOAD DATA INFILE 'your_file.csv'
INTO TABLE temporary_table
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(field1, field2);

4) Copie los datos usando 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) Eliminar la tabla temporal

DROP TEMPORARY TABLE temporary_table;

Utilizando SHOW INDEX FROM y SHOW COLUMNS FROM este proceso se puede automatizar para cualquier tabla dada.

podemos reemplazar primero (dos pasos) con la siguiente consulta única en el procedimiento compartido por (Jan).

1) y 2) podemos crear una nueva tabla con la misma estructura de referencia y sin índices.

CREAR TABLA TEMPORAL tabla_temporal SELECCIONAR * DESDE tabla_objetivo DONDE 1=0;

En lugar de..

1) Crear una nueva tabla temporal.

CREAR TABLA TEMPORAL tabla_temporal COMO target_table;

2) Opcionalmente, elimine todos los índices de la tabla temporal para acelerar las cosas.

MOSTRAR ÍNDICE DE tabla_temporal; ÍNDICE DE GOTA PRIMARY EN tabla_temporal; ÍNDICE DE GOTA some_other_index EN tabla_temporal;

valoraciones y reseñas

Si crees que te ha sido provechoso este artículo, sería de mucha ayuda si lo compartes con más programadores y nos ayudes a extender nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *