2015-09-25 2 views
2

Я пытаюсь сделать какую-то объемную вставку в своей таблице, но она должна учитывать повторяющиеся значения. Если есть дубликат, то он должен обновлять строки, а не обновлять их.Массовая вставка и обновление в mysql

Моя таблица: пользователь (идентификатор, имя, URL), где идентификатор PK

Я попытался это:

INSERT INTO `user` (`id`, `name`, `url`) 
    VALUES 
    ('7656', 'Tom', 'http://user.com/7656'), 
    ('1234', 'Jean', 'http://user.com/1234'), 
    ('8596', 'Pierre', 'http://user.com/8596'),   
    ('2035', 'Somon', 'http://user.com/2035'), 
    ('3685', 'Lola', 'http://user.com/3685') 
    ON DUPLICATE KEY UPDATE name=VALUES(name), url=VALUES(url) 

Предположим, что все 5 запись, что я пытаюсь уже вставить существовать в моя таблица с URL-адресом для обновления, как мне это сделать?

Возможно ли обновить строки с объемной вставкой, как это?

+0

Почему бы не попробовать и посмотреть, что происходит? –

ответ

0
INSERT INTO `table` (a, b, c) 
VALUES (?, ?, ?), 
VALUES (?, ?, ?), 
VALUES (?, ?, ?) 
ON DUPLICATE KEY UPDATE a = VALUES(a), b = VALUES (b), c = VALUES(c) 

необходимо установить ВАЛЮТЫ каждый раз.

Кроме того, как вы имеете построить запрос также в порядке, но у вас есть «» статистом в первом значении («7656», «Том», «http://user.com/7656»),

+0

Его работа, но по какой-то причине я обновляю 5 записей только с одним измененным номером, и он говорит мне, что затронуты 10 строк. Есть идеи? – user2707590

+0

Можете ли вы изменить свой вопрос выше с помощью нового запроса. Мне нужно посмотреть, как его построить сейчас. –

+0

Это почти то же самое, я просто заменил AND на часть обновления. см. Выше – user2707590

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