2013-09-16 2 views
3

У меня таблица выглядит так.Импортировать CSV в MySQL при повторном обновлении ключа

create table test1 (
id1 varchar(10), 
id2 varchar(10), 
value1 varchar(10), 
value2 varchar(10), 
primary key (id1, id2) 
); 

, который содержит данные, выглядит следующим образом:

id1 id2 value1 value2 
stan marsh 1   2 
eric cartman 3   4 

У меня есть локальный файл CSV, который содержит обновленные данные (содержит новые и старые) выглядит следующим образом:

"stan", "marsh", "5", "6" 
"kyle", "broflovski", "7", "8" 

Как импортировать файл csv, тем временем, обновлять дубликат ключа.

Немногие ссылки, которые могут быть полезны

  1. Import and overwrite existing data in MySQL (Тот же вопрос, но он не ответил правильно)
  2. Mysql Insert on duplicate
+0

Я считаю, что это ссылка вам нужно: http://dev.mysql.com/doc/refman/5.7/en/load-data.html Посмотрите на 'п REPLACE'. –

+2

Возможный дубликат, и если он не отвечает на вопрос: http://stackoverflow.com/questions/15271202/mysql-load-data-infile-with-on-duplicate-key-update – Tricky12

+0

Привет, друзья. У меня есть таблица с 7 столбцами, первичный ключ не работает для меня очень сильно для этого запроса, поскольку он основан на столбцах и значениях, я хочу вставить или обновить один столбец из файла csv; Проблема в том, что Duplicate используется неправильно и, если возможно, для этого сценария: если в строке три из столбцов A, B, C соответствуют их значениям (уже существует запись), выполните обновление; Если нет совпадения, сделайте вставку в очередь. –

ответ

1

Спасибо большое за крошечного флаг советовала П.М. 77-1 ,

load data local infile '/Users/myuserID/Desktop/test1.csv' 
replace 
into table test.test1 
columns terminated by ',' 
enclosed by '"' 
lines terminated by '\n'; 
+1

Я вижу, что это старый ответ, но будьте осторожны с 'REPLACE', он выполнит' DELETE', а затем 'INSERT'. Если у вас есть внешние ключи, вы можете потерять дочерние данные. См. Http://stackoverflow.com/questions/15271202/mysql-load-data-infile-with-on-duplicate-key-update –

+0

Привет, друзья, у меня есть таблица с 7 столбцами, первичный ключ для меня не работает очень для этого запроса, поскольку он основан на столбцах и значениях, я хочу вставить или обновить один столбец из файла csv; Проблема в том, что Duplicate используется неправильно и, если возможно, для этого сценария: если в строке три из столбцов A, B, C соответствуют их значениям (уже существует запись), выполните обновление; Если нет совпадения, сделайте вставку в очередь. –

Смежные вопросы