Я хочу вставить записи из таблицы2 в таблицу1.Мне нужно заменить записи, если найден дубликат в первичном ключе.Первичный ключ вида string
.
Итак, мое утверждение выглядит так (name
- это первичный ключ, и это string
. Повторяющиеся строки могут возникать из table2
, который я хочу обновить):
INSERT INTO `myscheme1`.`table1`
(`table1`.`name`,
`table1`.`id`,
`table1`.`history`)
SELECT `table2`.`name`,
`table2`.`id`,
`table2`.`history`
FROM `myscheme2`.`table2`;
Куда добавить UPDATE
?Если я не могу использовать UPDATE
, не могли бы вы уточнить, как использовать ON DUPLICATE KEY UPDATE
?
Потому что я не понимаю, как это применить?Я не знаю новую строку первичного ключа, которую я должен обновить старый (она читается командой, и у меня много повторяющихся случаев).Итак, этот пример : ниже предполагает, что я знаю, какое новое значение я должен ввести, если произойдет дублирование.
Я предпочитаю использовать UPDATE
, чтобы он заменял старую запись новойавтоматически.
INSERT INTO
devices(name)
VALUES
('Printer')
ON DUPLICATE KEY UPDATE name = 'Printer';
Подскажите, пожалуйста, как мне изменить синтаксис моей команды, если я хочу использовать UPDATE
или ON DUPLICATE KEY UPDATE
?