2009-05-01 1 views
1

У меня есть счетчик для уникальной колонки в моем столе. Теперь у меня есть список, где у меня есть имя столбца (которое уникально) и счетчик (который содержит некоторое целочисленное значение). Я знаю, что можно вставить несколько строк, я просто могу сделать запрос, содержащий все эти элементы в списке, но проблема в том, что если в уникальном поле уже есть данные.Как вставить и обновить несколько строк в базу данных Sql с тем же запросом?

В этом случае это имя уже есть, и оно имеет значение счетчика, в этом случае мне нужно суммировать существующее значение счетчика с добавленным alue и обновить эту строку. Есть ли способ сделать все это одним запросом Sql? Я использую базу данных MySQL и Java.

ответ

1

INSERT ON KEY UPDATE DUPLICATE

синтаксис вы ищете.

См. here.

+0

Как я могу использовать это с несколькими строками? – 2009-05-01 13:57:55

+0

Должны ли это работать, когда есть? для подготовленного заявления? ВСТАВИТЬ в словах (слово, счетчик) ЗНАЧЕНИЯ (?,?) НА дубликат KEY UPDATE счетчика = счетчик + ?, ЗНАЧЕНИЯ (?,?) НА дубликат KEY UPDATE счетчика = счетчик + ?, ЗНАЧЕНИЯ (?,?) ВКЛО дублировать KEY UPDATE counter = counter + ?, VALUES (?,?) В дубликате счетчика KEY UPDATE = counter + ?; – 2009-05-01 14:09:52

+0

Извините, я не понимаю вопроса. У меня нет опыта в подготовленных заявлениях. Ваш вопрос просто повторяет VALUES (?,?) ON DUPLICATE KEY UPDATE counter = counter +? несколько раз; Я не знаком с синтаксисом предложения с несколькими значениями VALUES, хотя он может работать нормально. Если несколько VALUES не разрешены, вы можете просто повторить запрос для каждого набора значений. Или, может быть, вы можете включить ВСЕ значения из одного предложения VALUES. Конкретные примеры помогут. –

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