2013-11-27 3 views
0

Можно ли вставить несколько строк в один запрос, но в то же время проверить, существует ли запись и обновить существующую запись?Вставить несколько строк в один запрос и обновить существующий

Я должен избегать ЗАМЕНИТЬСЯ, потому что мой стол имеет первичные и уникальные ключи.

+1

Да, посмотрите * на дубликат ключа * –

+2

[INSERT ... ON DUPLICATE KEY UPDATE] (http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html) – valex

+0

«Я должен избегать REPLACE INTO, потому что у моей таблицы есть первичные и уникальные ключи». Er, все таблицы имеют ОСНОВНЫЕ КЛЮЧИ. Это в значительной степени определение таблицы РСУБД! – Strawberry

ответ

0

Я не уверен, где положить ключ DUPLICATE в мой запрос?

insert into mytable (A, B C) values 
('a','b',1), 
('c','d',2), 
('e','f',3) ON DUPLICATE KEY UPDATE A = VALUES(A), B = VALUES(B), C = VALUES(C) 

Это решение:

insert into mytable (A, B C) values 
('a','b',1), 
('c','d',2), 
('e','f',3) ON DUPLICATE KEY UPDATE A = VALUES(A), B = VALUES(B), C = VALUES(C) 

Спасибо всем!

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